Python类中self参数的奇怪行为

时间:2016-06-23 12:52:06

标签: python class python-3.x set self

我在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)

1 个答案:

答案 0 :(得分:1)

__and__运算符应该使用两个参数重新定义。如果您想要self,则需要self作为定义的左侧部分(即__and__(self, other)。此外,__and__是按位&运算符而不是逻辑and。请参阅redefine __and__ operator