все Python 3astпонятие
ast.LtE
операторы
Маркер сравнения <= в дереве ast: лежит в поле Compare.ops и полей не имеет.
Синтаксис
ast.LtE()
Отдельный класс, а не Lt с признаком «или равно»: чтобы поймать оба знака, проверяйте isinstance(op, (ast.Lt, ast.LtE)). Знак '<=' между множествами (подмножество) даёт тот же LtE — дерево не знает типов операндов. Узлы-маркеры сравнивают по типу (isinstance), а не через ==: у узлов ast нет __eq__, и ast.LtE() == ast.LtE() — False.
Примеры
import ast
c = ast.parse('a <= b', mode='eval').body
op = c.ops[0]
print(type(op).__name__, isinstance(op, ast.Lt), isinstance(op, (ast.Lt, ast.LtE))) # → LtE False True
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности