In Python è implementata una rudimentale forma di sovrapposizione degli operatori
Quanto noi eseguiamo operazioni tra istanze di classe vengono invocati dei metodi particolari, chiamati magic methods
Sono facilmente riconoscibili perché il loro nome è sempre racchiuso tra __ e __, come __init__ e __del__
Ad esempio, se vogliamo implementare i confronti tra classi possiamo implementare il metodo __cmp__(self,other), che ritornerà un valore intero come strcmp()
Esistono altre magic funzion per implementare i singoli tipi di confronto, se necessario
È anche possibile ridefinire le operazioni matematiche con __add__ __sub__ __mul__ __div__ ecc...
È possibile anche emulare una lista o implementare un rudimentale sistema di incapsulamento degli attributi, tramite le magic function