gpt4 book ai didi

python - 覆盖内置 "and"

转载 作者:太空宇宙 更新时间:2023-11-03 12:42:21 25 4
gpt4 key购买 nike

原始的“and”可以被覆盖吗?例如如果我尝试做这样的事情

class foo():
def __and__(self,other):
return "bar"

这会被输出

>> foo() and 4
4
>> foo().__and__(4)
'bar'

我的直觉是内置的并且不能被覆盖,也不应该被覆盖以免造成混淆。

我想不应该更改 and 函数,因为它不需要更改,因为它的行为类似于

def and(self,other):
if( not bool(self) ):
return self
else:
return other

最佳答案

__and__ 覆盖按位运算符 &,而不是逻辑运算符。

要为您的类提供 bool 逻辑处理,请定义一个__nonzero__ 方法:http://docs.python.org/reference/datamodel.html#object.__nonzero__

关于python - 覆盖内置 "and",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5453546/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com