Metodi Python Dunder

Metodi Python Dunder
I metodi Dunder sono anche chiamati tecniche speciali che sono un insieme di metodi predefiniti in Python che possono essere utilizzati per migliorare le tue classi. Perché iniziano e si concludono con doppi sottoti, come __init__ o __str__, sono facilmente identificabili. In Python, questi "dunders" o "metodi speciali" sono talvolta noti come "metodi magici."Tuttavia, adottare questa frase può far apparire le cose più sofisticate di loro. Queste tecniche dovrebbero essere gestite come se avessero aspetti linguistici integrati.

I metodi Dunder sono metodi intrinseci Python estremamente forti che possono essere utilizzati per sviluppare classi complesse. Questa lezione fornisce una guida passo-passo dei metodi Python e come usarli, completa di esempi. La coerenza della popolarità di Python può essere ricondotta alla popolarità della lingua. Per metodi intrinseci come ABS (), len (), ordinato () e molti altri, Python ti consente di implementare i tuoi oggetti personalizzati. Tutto quello che devi fare ora è aggiungere alcuni metodi unici alla tua classe (metodi Dunder).

In questo articolo, abbiamo usato frasi come metodi Dunder, metodi magici e tecniche speciali, che rientrano nella stessa categoria. Prima di entrare nel tutorial, dovresti essere consapevole di qualcosa. I programmatori di Python che hanno esperienza con la programmazione orientata agli oggetti (OOP) riconosceranno il metodo __init__. Il metodo Dunder prende il nome dai doppi sottoti, che sono noti come Dunder in Python. Poiché ci sono metodi magici in Ruby che soddisfano lo stesso scopo, alcuni programmatori di Python si riferiscono a loro come tali in Python. Di solito ci riferiamo a loro come metodi speciali perché è quello che il manuale di Python li chiama. Di conseguenza, se vedi questi metodi in Python, supponi che siano metodi speciali.

Esempio 1:

Simile ai costruttori in altri linguaggi di programmazione, quando si forma un'istanza di una classe, la funzione __init__ per l'inizializzazione viene invocata senza alcuna chiamata. Nelle lezioni di Python, "__init__" è un metodo riservato. Nella terminologia orientata agli oggetti, viene definita un oggetto funzione () [codice nativo]. Questo metodo viene invocato quando un oggetto viene formato da una classe per consentire alla classe di popolare le sue proprietà. Possiamo usare l'operatore '+' per combinare due stringhe senza dover applicare un typecaster esplicito a causa di questi metodi. Ecco un esempio dettagliato di come eseguire questo. Abbiamo dichiarato prima la nostra classe di stringhe, seguita dalla funzione magica per creare un oggetto. La creazione di oggetti viene completata dopo il codice del driver e alla fine la posizione dell'oggetto.

Le righe di codice sopra indica semplicemente l'indirizzo di memoria dell'oggetto stringa.

Esempio 2:

Utilizzeremo il metodo __Repr__ per rappresentare il nostro oggetto nell'esempio seguente. Il metodo magico __repr__ rappresenta un'istanza di classe in una stringa. Quando proviamo a stampare un oggetto di classe, viene chiamata la funzione __Repr__, che produce una stringa. Per impostazione predefinita, Rep () restituisce la rappresentazione della stringa del valore fornito alla funzione Eval. Per impostazione predefinita, l'oggetto Custom Class fornisce una stringa tra parentesi angolari contenenti il ​​nome e l'indirizzo dell'oggetto. Ad eccezione dell'aggiunta del metodo __Repr__ Dopo aver utilizzato il metodo magico per inizializzare l'oggetto, il codice è lo stesso di prima.

Qui puoi vedere che quanto sopra ha visualizzato correttamente la stringa.

Esempio 3:

Aggiungeremo ora la funzione __Add__ alla classe String. Gli attributi dell'istanza di classe vengono aggiunti usando il metodo magico __add__. Facciamo finta che Object1 appartenga alla Classe A e Object2 alla Classe B e che entrambe queste classi abbiano un attributo chiamato "A" che contiene un numero intero. Dopo l'operazione Object1 + Object2, la funzione __Add__ aggiunge implicitamente gli attributi di questi oggetti, come Object1.A + Object2.UN. Abbiamo ri-inizializzato la classe String nel codice, come puoi vedere nella prima riga di codice. Dopodiché, abbiamo utilizzato il modo magico per iniziare l'oggetto. L'oggetto stringa è stato quindi stampato usando il metodo __Add__. L'oggetto viene creato dopo il codice del driver, che è la riga di codice successiva. Nell'ultima riga di codice, abbiamo concatenato un oggetto stringa con una stringa.

Stringa di classe:

Di seguito è riportato l'output del codice sopra scritto.

Conclusione:

I metodi magici sono metodi Python con doppi sottoti all'inizio e conclusione. I metodi o le tecniche dunder sono un altro nome per loro. I metodi magici non si intendono essere chiamati direttamente dall'utente; Invece, sono chiamati internamente dalla classe in reazione a un'azione specifica. Il metodo __add __ () è chiamato internamente quando si utilizza l'operatore + per aggiungere due numeri, ad esempio. Le classi integrate di Python definiscono molti metodi magici. Per scoprire quanti metodi magici una classe ha ereditato, puoi usare la funzione dir ().