Python property()

La funzione property() restituisce l'attributo delle proprietà.

La sintassi è:

property(fget=None, fset=None, fdel=None, doc=None)

Property() prende quattro parametri opzionali:

  • fget (opzionale): funzione per ottenere il valore dell'attributo. Il valore predefinito è None.
  • fset (opzionale): funzione per impostare il valore dell'attributo. Il valore predefinito è None.
  • fdel (opzionale): funzione per cancellare il valore dell'attributo. Il valore predefinito è None.
  • doc (opzionale): una stringa che contiene la documentazione (docstring) per l'attributo. Il valore predefinito è None.

property() restituisce l'attributo di proprietà dal getter, setter e deleter dato.

Se non viene dato alcun argomento, property() restituisce un attributo di proprietà di base che non contiene alcun getter, setter o deleter.

Se non viene fornito doc, property() prende la docstring della funzione getter.

class Persona:
   def __init__(self, nome):
       self._nome = nome

   def get_nome(self):
       print('Ottieni il nome')
       return self._nome

   def set_nome(self, value):
       print('Imposta il nome a ' + value)
       self._nome = value

   def del_nome(self):
       print('Cancella il nome')
       del self._nome

   nome = property(get_nome, set_nome, del_nome, 'proprietà nome')

p = Persona('Alessio')
print(p.nome)
p.nome = 'Mario'
del p.nome

Output del codice

Ottieni il nome
Alessio
Imposta il nome a Mario
Cancella il nome