전문가를 위한 파이썬(Fluent Python)에 나와있는 분류를 따르면 다음과 같다.
- 1. 문자열/바이트 표현
- 2. 숫자로 변환
- 3. 컬렉션 에뮬레이션
- 4. 반복
- 5. 콜러블 에뮬레이션
- 6. 컨텍스트(context) 관리
- 7. 객체 생성 및 소멸
- 8. 속성 관리
- 9. 속성 디스크립터
- 10. 클래스 서비스
- 11. 단항 수치 연산자
- 12. 향상된 비교 연산자
- 13. 비트 연산자
문자열/바이트 표현
__repr__, __str__, __format__, __bytes
앞의 둘은 문자열의 표현에 사용된다. 권장되는 메소드는 __repr__이다.
숫자로 변환
__abs__, __bool__, __complex__, __int__, __float__, __hash__, __index__
__abs__는 ‘절댓값’을 의미한다.
__complex__는 ‘복소수’를 의미한다.
__int__는 ‘정수’를 의미한다.
__float__는 ‘실수’를 의미한다.
__index__는 인덱스 값을 의미한다.
컬렉션 에뮬레이션
__len__, __getitem__, __setitem__, __delitem__, __contains__
반복
__iter__, __reversed__, __next__
dic(매개변수)을 할 경우 __iter__가 표기된다면 해당 매개변수는 for문과 같은 반복문에서 사용할 수 있다.
외워둬야 할 것은 4가지로, list, dict, tuple, set이다.
콜러블 에뮬레이션
__call__
컨텍스트(context) 관리
__enter__, __exit__
객체 생성 및 소멸
__new__, __init__, __del__
본인은 C#을 공부할 적에 해당 부분을 생성자 및 소멸자라고 불렀다.
속성 관리
__getattr__, __getattribute, __setattr__, __delattr__, __dir__
아까 반복에서 말한 dir이 바로 여기에 있다.
속성 디스크립터
__get__, __set__, __delete__
클래스 서비스
__prepare__, __instancecheck__, __subclasscheck__
이하부터는 연산자에 대해서 논의할 것이다.
연산자는 총 47개인데 여기서 책과 레퍼런스에 나온 걸 다 적지는 않을 것이다. 꼭 필요한 것만 골라서 탐구하자.
단항 수치 연산자
__neg__ -
__pos__ +
__abs__ abs()
향상된 비교 연산자
__lt__ <
__le__ <=
__eq__ ==
__ne__ !=
__gt__ >=
__ge__ >=
__add__ +
__sub__ -
__mul__ *
__truediv__ /
__floordiv__ //
__mod__ %
__divmod__ divmod()
__power__ **
비트 연산자
__invert__ ~
__lshift__ «
__rshift__ »
__and__ &
__or__ ** | ** |
__xor__ ^