我试图重写__and__,但这是&操作,不和 -这是我想要的.我可以覆盖和?
__and__
不,你不能覆盖and和or.由于这些在Python中具有的行为(即短路),它们更像是控制流工具而不是操作符,并且覆盖它们更像是重写而if不是+或 - .
and
or
if
您可以通过重写__nonzero__(或__bool__在Python 3中)来影响对象的真值(即它们是评估为真还是假).
__nonzero__
__bool__
你不能覆盖的and,or和not布尔运算符.
not