Python Glossary Русский

all Python 3astterm

ast.arguments

functions and classes

The node for a whole function or lambda signature: posonlyargs, args, vararg, kwonlyargs, kw_defaults, kwarg, defaults. The args field of FunctionDef and Lambda.

Syntax

ast.arguments(posonlyargs, args, vararg, kwonlyargs, kw_defaults, kwarg, defaults)

defaults are right-aligned: the default values belong to the last parameters of posonlyargs + args, so in def f(a, b=2) the defaults list has length 1. kw_defaults, by contrast, has the same length as kwonlyargs, with None for parameters without a default. *args and **kw are the separate fields vararg and kwarg (one arg or None), not items of args.

Examples

import ast
a = ast.parse('def f(a, b=2, *, c, d=4): pass').body[0].args
print([p.arg for p in a.args], [ast.unparse(d) for d in a.defaults])  # → ['a', 'b'] ['2']
print([p.arg for p in a.kwonlyargs])  # → ['c', 'd']
print([d if d is None else ast.unparse(d) for d in a.kw_defaults])  # → [None, '4']
import ast
a = ast.parse('lambda x, /, *rest, **kw: 0', mode='eval').body.args
print([p.arg for p in a.posonlyargs], a.vararg.arg, a.kwarg.arg)  # → ['x'] rest kw

See also

Open in the full glossarydocs.python.orgReport an inaccuracy