Python Glossary English

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

ast.IfExp

выражения

Узел условного выражения a if cond else b: test — условие, body — значение при истине, orelse — при лжи.

Синтаксис

ast.IfExp(test, body, orelse)

Порядок полей не совпадает с порядком записи: в исходнике первым идёт значение, а в узле поле body стоит после test. Это выражение, а не инструкция: у IfExp нет блоков и elif — цепочка 'a if p else b if q else c' даёт IfExp, вложенный в orelse. Инструкция if … : — другой узел, If.

Примеры

import ast
e = ast.parse('a if p else b if q else c', mode='eval').body
print(type(e).__name__, e.test.id, e.body.id)  # → IfExp p a
print(type(e.orelse).__name__, e.orelse.test.id)  # → IfExp q

См. также

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