python - "if x in self:"是什么意思?

标签 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 而没有任何引用应该意味着什么?

最佳答案

x in y 是与 Python data model 中的 __contains__ 方法相关的 Python 语言功能。 .任何实现该方法的类都可以在这样的表达式中使用。

x in y

等价于

y.__contains__(x)

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

关于python - "if x in self:"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59067008/

相关文章:

javascript - 在 Bootstrap 中向菜单添加操作

javascript - 创建一个具有类似 Array 行为的 ES6 类

python - Django 将错误列表输出为字符串而不是 html

python - 如何将 QWebEngineProfile 设置为 QWebEngineView

python - 使用另一列的值切片 Pandas 列

php - GD库中的images()在类里面不起作用,但可以单独使用

python - 如何调用这个 tkinter gui 函数?

Java contains() 方法返回 False,即使重写的 equals() 返回 True

c# - 如何使 contains 在 ef core 2 中不区分大小写?

mysql - 从统一数组中获取值: debug works,值正在改变,但颜色没有改变