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

GEN*_*NER 2 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))
Run Code Online (Sandbox Code Playgroud)

if x in self:是什么意思?它没有引用任何成员方法。例如,if x in self._some_array这是有道理的,但仅说self没有任何参考就意味着什么?

Hol*_*way 8

x in y__contains__Python数据模型中的方法相关的Python语言功能。可以在此类表达式中使用实现该方法的任何类。

x in y
Run Code Online (Sandbox Code Playgroud)

相当于

y.__contains__(x)
Run Code Online (Sandbox Code Playgroud)

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