Precedente Indice

Sovrapposizione degli operatori

  • 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
  • Documentazione sulle magic function si può trovare in questo PDF: http://www.rafekettler.com/magicmethods.pdf
© Ing. Stefano Salvi - released under FDL licence

Valid XHTML 1.0! Valid CSS!