반응형
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
여기 있으면True
54명이 들어갔는지 물어봤을 때m
:
>>> m = MyClass()
>>> 54 in m
True
도메인 고유의 언어를 작성하기 위해 사용할 수 있었던infix 연산자 덮어쓰기 프레임워크도 참조할 수 있습니다.
http://code.activestate.com/recipes/384122/
언급URL : https://stackoverflow.com/questions/2217001/override-pythons-in-operator
반응형
'sourcecode' 카테고리의 다른 글
교육 후 모델을 저장/복원하는 방법 (0) | 2023.01.10 |
---|---|
subprocess.call()의 출력을 취득하고 있습니다. (0) | 2023.01.10 |
phpMyAdmin - Error > Invalid format 파라미터? (0) | 2023.01.10 |
문자열 검사기, 파일 이름 (0) | 2023.01.10 |
두 테이블 조건을 설정하여 한 테이블을 업데이트하는 방법 (0) | 2023.01.10 |