все Python 3astпонятие
ast.keyword
выражения
Узел именованного аргумента в вызове f(key=value) или в определении class C(metaclass=M). Поля: arg — имя строкой, value — выражение.
Синтаксис
ast.keyword(arg, value)
Распаковка f(**opts) — тоже keyword, но с arg=None: код, который читает kw.arg как строку, падает на таких вызовах. Именованные аргументы лежат в Call.keywords, а не в Call.args; позиционная распаковка *args — Starred внутри args. В отличие от arg из определения функции, у keyword нет аннотации.
Примеры
import ast
call = ast.parse('print(a, sep="-", **opts)', mode='eval').body
for kw in call.keywords:
print(kw.arg, ast.unparse(kw.value)) # → sep '-' / None opts
print(len(call.args)) # → 1
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности