Любой способ переопределить оператор и в Python?

Я попробовал переопределить __and__, но это для оператора and, а не и - того, что я хочу. Могу ли я переопределить и?

Ответ 1

Вы не можете переопределить логические операторы and, or и not.

Ответ 2

Нет, вы не можете переопределить and и or. С поведением, которое они имеют в Python (то есть с коротким замыканием), они больше похожи на инструменты потока управления, чем операторы, и их переопределение будет больше напоминать переопределение if, чем + или -.

Вы можете влиять на истинное значение ваших объектов (то есть они оцениваются как истинные или ложные), переопределяя __nonzero__ (или __bool__ в Python 3).

Ответ 3

Не совсем. Нет специального имени метода для логических операторов короткого замыкания.