[PYTHON] 파이썬의 'in'연산자를 재정의 하시겠습니까?
PYTHON파이썬의 'in'연산자를 재정의 하시겠습니까?
파이썬에서 내 자신의 클래스를 만들면 'in'연산자를 사용할 수 있도록 어떤 함수를 정의해야합니까?
class MyClass(object):
...
m = MyClass()
if 54 in m:
...
해결법
-
==============================
1.MyClass .__에 __ (자체, 항목)이 있습니다.
MyClass .__에 __ (자체, 항목)이 있습니다.
-
==============================
2.보다 완전한 대답은 다음과 같습니다.
보다 완전한 대답은 다음과 같습니다.
class MyClass(object): def __init__(self): self.numbers = [1,2,3,4,54] def __contains__(self, key): return key in self.numbers
54가 m에 있는지 물으면 여기에서 True를 얻습니다.
>>> m = MyClass() >>> 54 in m True
과부하 __contains__ 설명서를 참조하십시오.
-
==============================
3.또한 도메인 특정 언어를 작성하는 데 사용할 수있는 중위 연산자 대체 프레임 워크를 살펴볼 수도 있습니다.
또한 도메인 특정 언어를 작성하는 데 사용할 수있는 중위 연산자 대체 프레임 워크를 살펴볼 수도 있습니다.
http://code.activestate.com/recipes/384122/
from https://stackoverflow.com/questions/2217001/override-pythons-in-operator by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 파이썬 유니 코드 동일 비교 실패 (0) | 2018.10.07 |
---|---|
[PYTHON] 숫자의 숫자 합계 - 파이썬 (0) | 2018.10.07 |
[PYTHON] Tensorflow C ++에서 그래프를 내보내고 실행하는 다양한 방법 (0) | 2018.10.07 |
[PYTHON] Python readlines () 읽기 및 사용법 (0) | 2018.10.07 |
[PYTHON] 중첩 된 사전의 항목에서 팬더 DataFrame 구성 (0) | 2018.10.07 |