Python의 __contains__ 메서드

Hemank Mehtani 2023년10월10일
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 연산자를 사용할 때 호출되므로 Delftstackstack 문자열이 있어도 최종 출력은 False입니다.