Python Glossary English

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

ast.Not

операторы

Оператор логического отрицания not в поле op узла UnaryOp.

Синтаксис

ast.Not()

not — унарная операция, поэтому живёт в UnaryOp, тогда как and и or — в BoolOp. Составное not in — отдельный оператор NotIn внутри Compare, а не Not; зато not a in b разбирается как UnaryOp(Not, Compare(In)). Результат одинаков, но правило линтера «пишите not in» ищет именно второй вид.

Примеры

import ast
n = ast.parse('not a in b', mode='eval').body
print(type(n).__name__, type(n.op).__name__, type(n.operand.ops[0]).__name__)  # → UnaryOp Not In
m = ast.parse('a not in b', mode='eval').body
print(type(m).__name__, type(m.ops[0]).__name__)  # → Compare NotIn

См. также

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