所以我在Python中有一个带有以下代码段的成员方法:
def foo(self, param):
x = self._as_array(param)
if x in self:
raise KeyError('Data point {} is not unique'.format(x))
if x in self:
在这里是什么意思?它没有引用任何成员方法。例如if x in self._some_array
很有道理,但仅声明self
却没有任何参考应该意味着什么?
答案 0 :(得分:8)
x in y
是一种Python语言功能,与Python data model中的__contains__
方法有关。可以在此类表达式中使用实现该方法的任何类。
x in y
等效于
y.__contains__(x)
如果未实现__contains__
,但实例是可迭代的,则Python会将x
与从迭代器返回的每个值进行比较。