Python Glossary English

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

ast.Gt

операторы

Маркер сравнения > в дереве ast: лежит в поле Compare.ops и полей не имеет.

Синтаксис

ast.Gt()

Цепочка 'a > b > c' — один Compare с двумя операторами в ops и двумя значениями в comparators, а не два вложенных сравнения, как и вычисляет её Python. Узлы-маркеры сравнивают по типу (isinstance), а не через ==: у узлов ast нет __eq__, и ast.Gt() == ast.Gt() — False.

Примеры

import ast
c = ast.parse('a > b > c', mode='eval').body
print(type(c).__name__, [type(o).__name__ for o in c.ops])  # → Compare ['Gt', 'Gt']
print(c.left.id, [x.id for x in c.comparators])  # → a ['b', 'c']
print(ast.Gt() == ast.Gt())  # → False

См. также

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