все Python 3astпонятие
ast.cmpop
операторы
Абстрактный базовый класс операторов сравнения: Eq, NotEq, Lt, LtE, Gt, GtE, Is, IsNot, In, NotIn. Используется в списке ops узла Compare.
Синтаксис
isinstance(op, ast.cmpop)
Цепочка 0 < x <= 10 — один Compare с двумя операторами в ops и двумя comparators, а не and двух сравнений. Поэтому у Compare поле ops — список, даже для одного сравнения. Составные «is not» и «not in» — отдельные классы IsNot и NotIn, а не Not плюс Is.
Примеры
import ast
e = ast.parse('0 < x <= 10', mode='eval').body
print([type(o).__name__ for o in e.ops], len(e.comparators)) # → ['Lt', 'LtE'] 2
e = ast.parse('a not in b', mode='eval').body
print(type(e.ops[0]).__name__, isinstance(e.ops[0], ast.cmpop)) # → NotIn True
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности