Я попробовал переопределить __and__, но это для оператора and, а не и - того, что я хочу. Могу ли я переопределить и?
Любой способ переопределить оператор и в Python?
Ответ 1
Вы не можете переопределить логические операторы and, or и not.
Ответ 2
Нет, вы не можете переопределить and и or. С поведением, которое они имеют в Python (то есть с коротким замыканием), они больше похожи на инструменты потока управления, чем операторы, и их переопределение будет больше напоминать переопределение if, чем + или -.
Вы можете влиять на истинное значение ваших объектов (то есть они оцениваются как истинные или ложные), переопределяя __nonzero__ (или __bool__ в Python 3).
Ответ 3
Не совсем. Нет специального имени метода для логических операторов короткого замыкания.