vale1411
Genius
2 min. di lettura
Vota

Concetti Chiave

  • Gli oggetti in Python sono istanze di classi, che condividono struttura e metodi definiti dalla classe stessa.
  • Il parametro 'self' è utilizzato nei metodi per fare riferimento all'oggetto che riceve il metodo stesso.
  • I metodi speciali, chiamati "dunder", come __init__ e __str__, servono per operazioni specifiche e devono essere utilizzati con attenzione.
  • I metodi di confronto (__eq__, __ne__, ecc.) permettono di definire comportamenti personalizzati per operatori come == e !=.
  • I metodi numerici (__add__, __sub__, ecc.) consentono di implementare operazioni aritmetiche personalizzate su 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

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community