我在Python中编程设置并发现了一些不寻常的东西。这种内置方法让我们可以通过&&和标志。第一个给出错误(没有给出s2)。为什么只有第二个版本工作(没有自己)?其他内置如 len ()可以具有自我属性。
def __and__(self,s1,s2):
table1 = list(s1._iter())
table2 = list(s2._iter())
s1.clear()
for element in table2:
if element in table1:
s1.add(element)
def __and__(s1,s2):
table1 = list(s1._iter())
table2 = list(s2._iter())
s1.clear()
for element in table2:
if element in table1:
s1.add(element)
答案 0 :(得分:1)
__and__
运算符应该使用两个参数重新定义。如果您想要self
,则需要self
作为定义的左侧部分(即__and__(self, other)
。此外,__and__
是按位&
运算符而不是逻辑and
。请参阅redefine __and__ operator。