Я создал визуализатор для модуля ast (абстрактное синтаксическое дерево), где можно просматривать в дереве решений их функции Python AST.
Что я хочу знать, так это то, является ли это визуальное представление точным :
# test function
def more_hello():
for i in range(10):
print('hello world!')
Выходной JSON формат more_hello
в Python AST:
# output JSON of more_hello in Python AST
{'_PyType': 'Module',
'body': [{'_PyType': 'FunctionDef',
'args': {'_PyType': 'arguments',
'args': [],
'defaults': [],
'kw_defaults': [],
'kwarg': None,
'kwonlyargs': [],
'vararg': None},
'body': [{'_PyType': 'For',
'body': [{'_PyType': 'Expr',
'value': {'_PyType': 'Call',
'args': [{'_PyType': 'Str',
's': 'hello world!'}],
'func': {'_PyType': 'Name',
'ctx': {'_PyType': 'Load'},
'id': 'print'},
'keywords': []}}],
'iter': {'_PyType': 'Call',
'args': [{'_PyType': 'Num', 'n': 10}],
'func': {'_PyType': 'Name',
'ctx': {'_PyType': 'Load'},
'id': 'range'},
'keywords': []},
'orelse': [],
'target': {'_PyType': 'Name',
'ctx': {'_PyType': 'Store'},
'id': 'i'}}],
'decorator_list': [],
'name': 'more_hello',
'returns': None}]}
и, наконец, следующее дерево решений AST выглядит следующим образом:
Это выглядит правильно? Я заметил, что есть две двойные строки, например, «Имя» имеет две (отношения?) К «Загрузить».