все 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Сообщить о неточности