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