English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
La costruzione di property() restituisce l'attributo property.
La sintassi di property() è:
property(fget=None, fset=None, fdel=None, doc=None)
Leggi anche: Python @property: come usarlo e perché?
property() accetta quattro parametri:
fget (opzionale) - Funzione utilizzata per ottenere il valore dell'attributo. Predefinito None.
fset (opzionale) - Funzione utilizzata per impostare il valore dell'attributo. Predefinito None.
fdel (opzionale) - Funzione utilizzata per eliminare il valore dell'attributo. Predefinito None.
doc (opzionale) - Una stringa che contiene la documentazione dell'attributo (docstring). Predefinito None.
property() restituisce l'attributo da getter, setter e deleter forniti.
Se non forniti i parametri, property() restituirà un attributo di base che non contiene getter, setter o deleter.
Se non fornitodocproperty() utilizza la docstring della funzione getter.
class Person: def __init__(self, name): self._name = name def get_name(self): print('Ottieni il nome:') return self._name def set_name(self, value): print('Imposta il nome a: ' + value) self._name = value def del_name(self): print('Eliminare il nome') del self._name # Utilizza get_name e set_name per impostare l'attributo # e il metodo del_name() name = property(get_name, set_name, del_name, 'Name property') p = Person('张三') print(p.name) p.name = '李四' del p.name
Risultato di output
Ottieni il nome: 张三 Imposta il nome a: 李四 Eliminare il nome
In questo caso_nameUtilizzato per memorizzarePersonVariabile privata del nome
Abbiamo anche impostato:
get_name() è il metodo di recupero del nome della persona
Il metodo set_name() utilizzato per impostare il nome della persona
Il metodo del_name() viene utilizzato per eliminare il nome della persona.
Ora, chiamiamo il metodo property() per impostare un nuovo nome di attributo.
Come mostrato nel programma, attraverso l'output di stampa interna, l'invocazione interna p.name di get name() come getter, set name() come setter e del name() come deleter
property() può essere utilizzatoPython装饰器 @property per assegnare getter, setter e Deleter, piuttosto che usare.
class Person: def __init__(self, name): self._name = name @property def name(self): print('Ottieni il nome:') return self._name @name.setter def name(self, value): print('Impostare il nome su: ' + value) self._name = value @name.deleter def name(self): print('Eliminare il nome') del self._name p = Person('王麻子') print('Il nome è:', p.name) p.name = '李二' del p.name
Risultato di output
Ottieni il nome: Il nome è: 王麻子 Impostare il nome su: 李二 Eliminare il nome
Qui, non usiamo property() ma usiamo il decoratore @property.
Prima di tutto, specifichiamo che il metodo name() è anchePersondegli attributi. Può essere completato utilizzando il metodo getter mostrato nel programma @property.
Successivamente, utilizziamo il nome dell'attributo per specificare il setter e il deleter.
Questo viene fatto utilizzando i metodi @name.settersetter e @name.deleterDeleter.
Attenzione, abbiamo definito getter, setter e deleter utilizzando lo stesso metodo name() con definizioni diverse.
Ora, indipendentemente da quando si utilizza p.name, internamente verrà chiamato il getter, setter e Deleter appropriato, come mostrato nella stampa interna del metodo.