все Python 3astпонятие
ast.GtE
операторы
Маркер сравнения >= в дереве ast: лежит в поле Compare.ops и полей не имеет.
Синтаксис
ast.GtE()
Имя сокращает «greater than or equal», и это отдельный класс, а не Gt с флагом: проверка isinstance(op, ast.Gt) знак >= не поймает. Смешанная цепочка '0 <= i >= n' законна и даёт ops [LtE, GtE]. Узлы-маркеры сравнивают по типу (isinstance), а не через ==: у узлов ast нет __eq__, и ast.GtE() == ast.GtE() — False.
Примеры
import ast
c = ast.parse('0 <= i >= n', mode='eval').body
print([type(o).__name__ for o in c.ops]) # → ['LtE', 'GtE']
print(isinstance(c.ops[1], ast.Gt)) # → False
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности