La funzione delattr di python

La funzione delattr di python mi consente di cancellare un attributo dall'esterno della classe.

La sintassi

delattr(classe, attributo)

La funzione ha due argomenti:

  • Il nome della classe che contiene l'attributo.
  • Il nome dell'attributo da rimuovere

    Un esempio pratico

    Creo uno script con una classe (Persone).

    All'interno della classe definisco un attributo (nome).

    1. class Persone():
    2. nome = 'Andrea'
    3. delattr(Persone, 'nome')
    4. print(getattr(Persone, 'nome'))

    Nella riga 3 cancello l'attributo 'nome' nella classe Persone con la funzione delattr().

    Poi nella riga 4 tento di leggere e visualizzare il contenuto dell'attributo 'nome' tramite la funzione getattr().

    Lo script però va in errore perché l'attributo 'nome' ora non esiste più dentro la classe.

    Traceback (most recent call last):
    File, line 13, in <module>
    print(getattr(Persone, 'nome'))
    AttributeError: type object 'Persone' has no attribute 'nome'

    Una volta eliminato l'attributo dalla classe, non può essere più invocato dallo script.

    E così via.

     


     

    Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

    FacebookTwitterLinkedinLinkedin
    knowledge base

    Classi Python