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