Doppio underscore in Python

Vaibhhav Khetarpal 11 luglio 2021
  1. Usa il doppio carattere di sottolineatura in Python
  2. Usa il doppio carattere di sottolineatura iniziale e finale in Python
Doppio underscore in Python

Sia il carattere di sottolineatura (_) che il doppio carattere di sottolineatura (__) hanno un grande significato nel mondo della programmazione Python e sono eccessivamente utilizzati dai programmatori per scopi diversi. I doppi caratteri di sottolineatura sono piuttosto utili e si incontrano frequentemente nel codice Python.

In questo articolo discuteremo il significato del doppio trattino basso in Python.

Usa il doppio carattere di sottolineatura in Python

Quando il doppio carattere di sottolineatura conduce a un determinato identificatore (__var), il processo di modifica del nome si verifica su quel particolare identificatore.

La modifica del nome, in termini semplici, consiste nel riscrivere sostanzialmente il nome dell’attributo per evitare conflitti di denominazione con le sottoclassi.

Puoi usare il seguente codice per spiegare il doppio carattere di sottolineatura iniziale in Python.

class E1:
    def __init__(self):
        self.bar = 11
        self._baz = 23
        self.__foo = 23


x = E1()
print(dir(x))

Produzione:

['_E1__foo', '__doc__', '__init__', '__module__', '_baz', 'bar']

Spiegazione

  • Nel codice sopra, prendiamo una classe e confrontiamo il singolo underscore, il doppio underscore e gli elementi normali.
  • Gli elementi foo, bar, baz sono semplici parole chiave usate qui come segnaposto per i valori che cambiano a seconda delle condizioni passate al programma o di nuove informazioni ricevute dal programma.
  • La funzione dir() viene utilizzata qui per fornire un elenco di attributi validi dell’oggetto dato passato come argomento nella funzione.

Nel codice sopra, notiamo che le variabili bar e _baz sembrano essere rimaste invariate, mentre la variabile __foo è stata cambiata in _E1__foo. Questo è il processo di aggrovigliamento dei nomi che si verifica sulla variabile, ed è fatto per salvaguardare la variabile dall’essere sovrascritta nelle sottoclassi.

Questo processo di manipolazione dei nomi delle variabili con il doppio carattere di sottolineatura iniziale è totalmente trasparente per il programmatore. La modifica del nome interagisce e cambia tutto ciò che conduce con un doppio trattino basso, comprese le funzioni.

Usa il doppio carattere di sottolineatura iniziale e finale in Python

Quando una variabile è circondata da un doppio carattere di sottolineatura sia sul lato iniziale che su quello finale, il processo di modifica del nome non viene applicato ad essa.

Le variabili raggruppate dal doppio carattere di sottolineatura come prefisso e suffisso vengono ignorate dall’interprete Python.

È possibile utilizzare il codice seguente per spiegare il doppio carattere di sottolineatura iniziale e finale in Python.

class A:
    def __init__(self):
        self.__foo__ = 10


print(A().__foo__)

Produzione:

10

Nel codice sopra, la variabile foo con un doppio carattere di sottolineatura come prefisso e suffisso viene ignorata dall’interprete e il nome mangling non si verifica. Il valore di questa funzione viene restituito come output, il che dimostra che la variabile esiste nella lista degli attributi dell’oggetto.

Alcuni nomi univoci, come init o call che contengono sia il carattere di sottolineatura iniziale che quello finale, sono riservati nel linguaggio Python per usi speciali.

Vaibhhav Khetarpal avatar Vaibhhav Khetarpal avatar

Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.

LinkedIn

Articolo correlato - Python Syntax