📜  __contains__ (1)

📅  最后修改于: 2023-12-03 15:29:16.344000             🧑  作者: Mango

Python中的 contains

在Python中,__contains__是一个魔法方法,用于定义一个对象是否包含某个元素。当你使用关键字 in 来判断一个对象时,Python会自动调用该对象的 __contains__ 方法。

语法

__contains__ 方法的语法如下:

def __contains__(self, item):
    # 判断对象self是否包含元素item
    # 如果包含,返回True,否则返回False
    pass
参数

__contains__ 方法共有两个参数:

  • self:表示对象本身。
  • item:表示待判断的元素。
返回值

如果对象包含元素,返回 True,否则返回 False

示例

下面是一个简单的示例,其中 MyList 继承了 list 类,并重写了 __contains__ 方法:

class MyList(list):
    def __contains__(self, item):
        print('__contains__ is called')
        return super().__contains__(item)

mylist = MyList([1, 2, 3, 4])
if 3 in mylist:
    print('3 is in mylist')

输出:

__contains__ is called
3 is in mylist

注意,当你使用 in 关键字来判断一个对象时,Python会自动调用该对象的 __contains__ 方法。在上面的示例中,我们自定义了 MyList__contains__ 方法,并在其中打印了一条调试信息。当我们使用 in 关键字来查找 3 是否在 mylist 中时,__contains__ 方法就被调用了。

总结

在Python中,我们可以通过重写 __contains__ 方法来自定义一个对象是否包含某个元素。当使用 in 关键字时,Python会自动调用该对象的 __contains__ 方法,判断该对象是否包含指定的元素。