
Le proprietà chiamabili di una classe in Python
In Python esiste anche il concetto di proprietà chiamabile di una classe che puoi ottenere tramite il decoratore `@property`.
@property
Questo permette di trattare i metodi come se fossero attributi non chiamabili.
In altre parole, puoi accedere ai risultati del metodo come se fossero attributi statici.
Ecco un esempio pratico.
class Automobile:
def __init__(self, marca, modello):
self._marca = marca
self._modello = modello
@property
def descrizione(self):
return f"{self._marca} {self._modello}"
In questo esempio, `descrizione` è definito come un metodo, ma grazie al decoratore `@property`, puoi accedere al metodo come se fosse un attributo non chiamabile ovvero una proprietà.
Ad esempio, crea un'istanza della classe.
auto = Automobile("Fiat", "500")
Poi accedi al metodo senza usare le parentesi, come se fosse una proprietà.
print(auto.descrizione)
Fiat 500
Questo accesso simula una proprietà `auto.descrizione` ma in realtà chiama il metodo auto.descrizione().
Quindi, oltre ai metodi e alle proprietà, Python ti offre anche questa flessibilità aggiuntiva che mescola i concetti delle due categorie di attributi in modo interessante.