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。