Video appunto: Classi e oggetti

Python - Classi e oggetti



Oggetto: valore incapsulato in una identità
Classi (tipo): collezione di oggetti che condividono struttura e metodi
Istanze = oggetti di una classe che condividono struttura e metodi definiti dalla classe
Class nome (nomiopzionali):
comandi
definizioni di metodi
Un metodo ha sempre almeno un parametro:
- il primo parametro di un metodo self per convenzione
- quando il metodo è invocato, quel parametro è legato all'oggetto che lo riceve

Metodi dunder
Il "double underscore" si pronuncia dunder
I metodi con dunder doppio (prefisso e postfisso)
__nome__
Per convenzione sono usati per scopi specifici e vanno usati solo per quello
__init__ (self, arg_opzionali) per inizializzare
__str__ (self, arg_opzionali) con print() restituisce una stringa
Confronto:
__eq__ (self, other) con ==, is
__ne__(self, other) con !=
__lt__(self, other) con __gt__(self, other) con >
__le__(self, other) con __ge__(self, other) con >=
Le operazioni booleane (and,or,not) non possono essere ridefinite via metodi speciali __xxx__
Numerici:
__pos__(self) con + unario
__neg__(self) con - unario
__abs__(self) con abs()
__round__(self, n) con round()
__floor__(self) con math.
floor()
__ceil__(self) con math.ceil()
__trunc__(self) con math.trunc()
__add__(self, other) con +
__sub__(self, other) con -
__mul__(self, other) con *
__floordiv__(self, other) con //
__truediv__(self, other) con /
__pow__(self, other) con **
__iadd__(self, other) con la parte destra di +=
__isub__(self, other) con la parte destra di -= Accesso a sequenze:
__len__(self) con len()
__getitem__(self, key) con self[key]
__setitem__(self, key, value) con self[key]=value