Python 中的 __contains__ 方法
Hemank Mehtani
2021年10月2日
Python __contains__
是 Python 中 String 类的一个方法。它可以检查给定的子字符串是否是字符串的一部分。
这是一种神奇的方法。此类方法不打算显式调用,而是作为其他内置操作的一部分调用。在这种情况下,__contains__
方法与 in
运算符相关联。
__contains__
函数定义了实例在 in
运算符右侧的行为 - in
运算符检查给定值是否存在于序列中。
例如,
str1 = "Delftstack"
str2 = "Del"
val = str1.__contains__(str2)
print(val)
输出:
True
在上面的示例中,我们使用 __contains__
方法检查了给定的子字符串是否存在于字符串中。
魔法方法是在类内部调用的。我们可以在类中使用 __contains__
方法,该方法将调用它来执行某些操作。
当与类关联时,我们可以重载它以返回一些其他值。
例如,
class abc(object):
name = 'Delftstack'
def __contains__(self, m):
if self.name:
return False
b = abc()
print('stack' in b)
输出:
False
在上面的例子中,如果子字符串在字符串中,我们让 __contains__
方法返回 False。由于在使用 in
运算符时会调用它,因此即使字符串 stack
出现在 Delftstack
中,最终输出也是 False。