Python Glossary English

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

ast.Eq

операторы

Класс оператора сравнения ==: экземпляр Eq() лежит в списке ops узла Compare. Соседи — NotEq, Lt, Is, In и другие.

Синтаксис

ast.Eq()  # ==

Операторы сравнения хранятся списком, поэтому для a == b берут node.ops[0], а не node.op — такого поля у Compare нет. Сравнение с None через == (x == None) линтеры ищут именно как Compare с Eq и Constant(None); правильная форма is — это класс Is. Присваивание = к Eq отношения не имеет: это инструкция Assign.

Примеры

import ast
node = ast.parse('x == None', mode='eval').body
print(type(node.ops[0]).__name__, node.comparators[0].value)  # → Eq None
print(hasattr(node, 'op'))  # → False

См. также

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