Python Glossary English

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