“如果自我中的x:”是什么意思?

时间:2019-11-27 09:31:13

标签: python class contains

所以我在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却没有任何参考应该意味着什么?

1 个答案:

答案 0 :(得分:8)

x in y是一种Python语言功能,与Python data model中的__contains__方法有关。可以在此类表达式中使用实现该方法的任何类。

x in y

等效于

y.__contains__(x)

如果未实现__contains__,但实例是可迭代的,则Python会将x与从迭代器返回的每个值进行比较。