>  기사  >  백엔드 개발  >  Python의 연산자 오버로딩 사용량에 대한 자세한 분석

Python의 연산자 오버로딩 사용량에 대한 자세한 분석

高洛峰
高洛峰원래의
2017-03-06 13:43:461276검색

이 기사의 예에서는 Python의 연산자 오버로딩 사용법을 설명합니다. 참고용으로 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.

클래스는 Python 연산자를 오버로드할 수 있습니다.

연산자 오버로드는 객체를 다음과 동일하게 만듭니다. 내장된 것. __X__라는 메서드는 특수 후크이며 Python은 이 특수 이름 지정을 통해 연산자를 가로채서 오버로드를 달성합니다. Python은 연산자를 계산할 때 자동으로 이러한 메서드를 호출합니다. 예를 들어:

객체가 __add__ 메서드를 상속하는 경우 이 메서드는 + 표현식에 나타날 때 호출됩니다. 오버로드를 통해 사용자 정의 개체는 내장 개체처럼 동작합니다.

클래스의 연산자 오버로딩

1. 연산자 오버로딩을 사용하면 클래스가 표준 Python 작업을 가로챌 수 있습니다.
2. 클래스는 모든 Python 표현식 연산자를 오버로드할 수 있습니다.
3. 클래스는 객체 작업(인쇄, 함수 호출, 자격 등)을 오버로드할 수 있습니다.
4. 오버로딩은 클래스 인스턴스를 내장 인스턴스처럼 보이게 만듭니다.
5. 오버로딩은 특별히 명명된 클래스 메서드를 통해 구현됩니다.

메소드 이름의 연산 설명은 호출 표현식입니다. __nit__ 구성 함수 생성 객체: 클래스()
__ del__ 구조 함수가 객체를 해제할 때 __add__ "+" "+" x + y
__or__ "|" x | y
__repr__ 인쇄, 변환 🎜>__getattr__ 속성 ​​참조 x.undefine
__getitem__ 인덱스 x[key ], for 루프, 테스트
__setitem__ 인덱스 할당 x[key] = value
__getslice__ 샤딩    ​​    len(x)
__cmp__ 비교 x == Y , x < y
__radd__ 연산자 "+ " 오른쪽 비인스턴스 + x


예:
__getitem__이 모든 인덱스를 가로챕니다. 작업

>>> class indexer:
def __getitem__(self,index):
return index ** 2
>>> x = indexer()
>>> for i in range(5):
print x[i]  #x[i]将调用__getitem__(x,i)
0
1
4
9
16

에 대한 자세한 설명은 Python의 연산자 오버로딩 사용 분석 및 관련 기사는 PHP 중국어 웹 사이트를 주목하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.