Python Glossary English

Python 3.0+astпонятие

ast.Starred

переменные

Узел выражения со звёздочкой *value: распаковка в вызове f(*args), в литерале [*a, *b] и звёздная цель a, *rest = …

Синтаксис

ast.Starred(value, ctx=ast.Load())

Starred покрывает только одну звёздочку: **kwargs в вызове — это keyword с arg=None, а {**d} — ключ None в списке keys узла Dict. В *args параметра функции Starred тоже нет: там поле vararg узла arguments. У Starred есть свой ctx: в цели присваивания он Store, а в вызове Load.

Примеры

import ast
call = ast.parse('f(*args)', mode='eval').body
print(type(call.args[0]).__name__, call.args[0].value.id)  # → Starred args
import ast
target = ast.parse('a, *rest = data').body[0].targets[0]
star = target.elts[1]
print(type(star).__name__, star.value.id, type(star.ctx).__name__)  # → Starred rest Store

См. также

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