English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Corso di base di Python

Controllo di flusso in Python

Funzioni in Python

Tipi di dati in Python

Operazioni di file in Python

Oggetti e classi in Python

Data e ora in Python

Conoscenze avanzate di Python

Manuale di riferimento di Python

Metodo e esempio di utilizzo di property() in Python

Python 内置函数

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é?

Parametri di property()

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.

Valore restituito da property()

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.

Esempio 1: Creazione di un attributo utilizzando getter, setter e deleter

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

Esempio 2: Utilizzo del decoratore @property

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.

Python 内置函数