【发布时间】:2016-06-23 12:52:05
【问题描述】:
我正在使用 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)
【问题讨论】:
-
如果你做
x & y,那么__and__(通常是self)的第一个参数是x,第二个参数是y并且没有第三个参数。这并不奇怪self行为,您可以将前两个参数命名为bananas和cream,如果您将chocolate_sauce添加到参数列表,则会获得相同的行为。 -
奇怪,我之前好像没见过 Python 中的
&&运算符……是新的吗?当我在 3.5.1 中尝试时,我只收到SyntaxError。
标签: python class python-3.x set self