Python 中的 __contains__ 方法

Hemank Mehtani 2021年10月2日
Python 中的 __contains__ 方法

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。