Python Glossary English

все Python 3astпонятие

ast.Call

выражения

Узел вызова f(...): вызываемое выражение в func, позиционные аргументы в args и именованные в keywords.

Синтаксис

ast.Call(func, args, keywords)

Распаковки при вызове лежат не там, где ждут: *items попадает в args как узел Starred, а **options — в keywords как keyword с arg=None. Поле func — любое выражение: у obj.method() там Attribute, у f()() — снова Call, так что имя функции берут не просто node.func.id. Сама инструкция print(1) отдельной строкой — это Expr, внутри которого Call.

Примеры

import ast
node = ast.parse('f(1, *rest, key=2, **opts)', mode='eval').body
print(node.func.id, [type(a).__name__ for a in node.args])  # → f ['Constant', 'Starred']
print([k.arg for k in node.keywords])  # → ['key', None]
import ast
node = ast.parse('obj.save()', mode='eval').body
print(type(node.func).__name__, node.func.attr)  # → Attribute save

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности