Python Glossary English

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

ast.SetComp

выражения

Узел генератора множества {elt for … in … if …}: elt — выражение-элемент, generators — список узлов comprehension.

Синтаксис

ast.SetComp(elt, generators)

Каждый for даёт свой comprehension в generators, а условия if лежат в его поле ifs, а не отдельными узлами. Переменная цикла внутри — Name со Store и в собственной области видимости: после выражения она снаружи не существует. Отличие от Set — только в наличии generators; от DictComp — в одном elt вместо пары key и value.

Примеры

import ast
n = ast.parse('{x * 2 for x in a for y in b if x}', mode='eval').body
print(type(n).__name__, len(n.generators), len(n.generators[1].ifs))  # → SetComp 2 1
print(ast.unparse(n.elt))  # → x * 2

См. также

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