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