Python Glossary English

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

ast.Yield

функции и классы

Узел выражения yield: value — отдаваемое значение или None. Как инструкция стоит внутри Expr.

Синтаксис

ast.Yield(value=None)

yield — выражение, а не инструкция: строка yield x — это Expr(Yield), а x = yield — Assign с Yield справа, value которого None. yield from — отдельный узел YieldFrom. Функцию-генератор ast никак не помечает: у FunctionDef нет такого флага, и узнать, генератор ли она, можно только поиском Yield в теле, не заходя во вложенные функции и lambda.

Примеры

import ast
f = ast.parse('def g():\n    yield 1\n    x = yield').body[0]
print(type(f.body[0]).__name__, type(f.body[0].value).__name__)  # → Expr Yield
print(f.body[1].value.value)  # → None

См. также

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