astypes
0.2.6
python庫以靜態檢測AST節點的類型。
一個好的用例是只需對特定類型運行一些規則的襯裡。例如,僅當something具有類型str時,檢查something.format(a=b) 。
python3 -m pip install astypesAstypes使用星體來推斷節點的定義。因此,如果您的代碼與AST節點一起使用,則需要首先將它們轉換為Astroid:
import astroid
import astypes
module = astroid . parse ( source_code )
node = astypes . find_node ( module , ast_node )當您有一個星體節點時,您可以得到它的類型:
node_type = astype . get_node ( node )
print ( node_type . annotation )例子:
import astroid
import astypes
node = astroid . extract_node ( '1 + 2.3' )
t = astypes . get_type ( node )
print ( t . annotation ) # 'float'對於真實的用法示例,請查看sublytypes。這是一個CLI工具,可以使用ASTYPES自動將類型註釋添加到Python代碼中。
您可以在astypes/_handlers.py中找到大多數邏輯。簡而言之:
13始終是int 。list(x)返回類型list 。如果您與其他內容列出了陰影list ,那可能是不正確的。