sourcecode

Python의 'in' 연산자를 재정의하시겠습니까?

copyscript 2023. 1. 10. 21:16
반응형

Python의 'in' 연산자를 재정의하시겠습니까?

만약 내가 Python에서 나만의 클래스를 만들고 있다면, 어떤 함수를 정의해야 python을 사용할 수 있을까?in연산자(예:

class MyClass(object):
    ...

m = MyClass()

if 54 in m:
    ...

MyClass.__contains__(self, item)

보다 완전한 답변은 다음과 같습니다.

class MyClass(object):

    def __init__(self):
        self.numbers = [1,2,3,4,54]

    def __contains__(self, key):
        return key in self.numbers

여기 있으면True54명이 들어갔는지 물어봤을 때m:

>>> m = MyClass()
>>> 54 in m
True  

오버로드」의 메뉴얼을 참조해 주세요.

도메인 고유의 언어를 작성하기 위해 사용할 수 있었던infix 연산자 덮어쓰기 프레임워크도 참조할 수 있습니다.

http://code.activestate.com/recipes/384122/

언급URL : https://stackoverflow.com/questions/2217001/override-pythons-in-operator

반응형