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