Python - magiczne metody

Magiczne metody instancji

def __init__	(self): pass	# Konstruktor - funkcja wywoływana przy tworzeniu obiektu danej klasy `obiekt = klasa()`
def __del__		(self):	pass	# Destruktor - funkcja wywoływana przy usuwaniu obiektu z pamięci `del obiekt`
def __call__	(self): pass	# Funkcja wywoływana kiedy obiekt jest wywoływany jak funkcja `obiekt()`

Magiczne metody rzutowania typów

def __bool__	(self): pass	#Funkcja wywoływana przy konwersji obiektu na `bool`
def __int__		(self): pass	#Funkcja wywoływana przy konwersji obiektu na `int
def __float__	(self): pass	#Funkcja wywoływana przy konwersji obiektu na `float`
def __complex__	(self): pass	#Funkcja wywoływana przy konwersji obiektu na `complex`
def __str__		(self): pass	#Funkcja wywoływana przy konwersji obiektu na `str`, także w funkcji `print()`
def __repr__	(self): pass	#Funkcja wywoływana przy konwersji obiektu na `repr`- tekstową reprezentację obiektu
def __format__	(self): pass	#Funkcja wywoływana kiedy obiekt jest argumentem funkcji, lub metody stringu `format()`

Magiczne metody iteracji

def __iter__	(self): 		pass	#Funkcja wywoływana kiedy obiekt jest konwertowany na kontener, także w pętli`for`
def __getitem__	(self,key): 	pass	#Funkcja wywoływana kiedy obiekt jest indeksowany lub wycinany - `obiekt[1]`
def __index__	(self): 		pass	#Funkcja wywoływana kiedy obiekt jest używany jako indeks - `"qwe"[obiekt]`
def __len__		(self):			pass	#Funkcja wywoływana kiedy obiekt jest argumentem funkcji `len()`
def __next__	(Self):			pass	#Funkcja wywoływana kiedy obiekt jest argumentem funkcji `next()`
def __contains__(self, other)	pass	#Funkcja wywoływana kiedy obiekt jest lewym operandem dla `in`

Magiczne metody przeładowania operatorów

#arytmetyczne
def __add__			(self, other): pass		#Funkcja wywoływana kiedy obiekt jest lewym operandem dla `+`
def __sub__         (self, other): pass		#Funkcja wywoływana kiedy obiekt jest lewym operandem dla `-`
def __mul__         (self, other): pass		#Funkcja wywoływana kiedy obiekt jest lewym operandem dla `*`
def __floordiv__    (self, other): pass		#Funkcja wywoływana kiedy obiekt jest lewym operandem dla `//`
def __truediv__     (self, other): pass		#Funkcja wywoływana kiedy obiekt jest lewym operandem dla `/`
def __mod__         (self, other): pass		#Funkcja wywoływana kiedy obiekt jest lewym operandem dla `%`
def __pow__         (self, other): pass		#Funkcja wywoływana kiedy obiekt jest lewym operandem dla `**`

#bitowe
def __or__          (self, other): pass		#Funkcja wywoływana kiedy obiekt jest lewym operandem dla `|`
def __and__			(self, other): pass		#Funkcja wywoływana kiedy obiekt jest lewym operandem dla `&`
def __xor__			(self, other): pass		#Funkcja wywoływana kiedy obiekt jest lewym operandem dla `^`
def __rshift__		(self, other): pass		#Funkcja wywoływana kiedy obiekt jest lewym operandem dla `>>`
def __lshift__		(self, other): pass		#Funkcja wywoływana kiedy obiekt jest lewym operandem dla `<<`

#porównania
def __eq__			(self, other): pass		#Funkcja wywoływana kiedy obiekt jest lewym operandem dla `==`
def __ne__			(self, other): pass		#Funkcja wywoływana kiedy obiekt jest lewym operandem dla `!=`
def __lt__			(self, other): pass		#Funkcja wywoływana kiedy obiekt jest lewym operandem dla `<`
def __gt__			(self, other): pass		#Funkcja wywoływana kiedy obiekt jest lewym operandem dla `>`
def __le__			(self, other): pass		#Funkcja wywoływana kiedy obiekt jest lewym operandem dla `<=`
def __ge__			(self, other): pass		#Funkcja wywoływana kiedy obiekt jest lewym operandem dla `>=`

# Powyższe metody operatorów mają swoje odpowiedniki prawostronne, np `__add__`: `__radd__`, `__sub__`:`__rsub__`
# Wywaływane są gdy obiekt jest prawym operandem, a lewy operand nie ma odpowiedniej metody

Magiczne metody matematyczne

def __abs__		(self): pass	#Funkcja wywoływana kiedy obiekt jest argumentem funkcji `abs()`
def __ceil__	(self): pass	#Funkcja wywoływana kiedy obiekt jest argumentem funkcji `math.ceil()`
def __floor__	(self): pass	#Funkcja wywoływana kiedy obiekt jest argumentem funkcji `math.floor()`
def __trunc__	(self): pass	#Funkcja wywoływana kiedy obiekt jest argumentem funkcji `math.trunc()`