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