Hai aspettato molto tempo per questo perché ho evitato di parlare di questi metodi magici Dundar per molto
tempo.
In questo video, scopriremo finalmente cosa fanno adesso.
Siamo in grado di vedere cosa ha la nostra istanza come metodi usando il metodo porta.
E ti abbiamo detto che questi sono stati ereditati dalla nostra classe di oggetti di base.
Ora, questo sottolinea i nostri metodi speciali.
Ricorda come abbiamo cose come LENTH, ad esempio, che ci permettono di dire la lunghezza di un array.
Questi sono effettivamente implementati utilizzando questi metodi Dundar.
Ci consentono di utilizzare funzioni specifiche di Python su oggetti creati tramite la nostra classe.
Quindi lascia che ti mostri cosa intendo.
Creeremo una nuova classe e questa sarà una classe di giocattoli.
Ora, qui, definiremo un giocattolo e lo inizializzeremo con self.
Allora diremo che ha colore ed età.
Ora dirà che il colore è uguale al colore.
Quindi questi saranno i nostri attributi.
e H.
Stupendo.
C'è la nostra classe ora, diciamo che vogliamo creare una action figure.
Questa action figure sarà istanziata con un giocattolo, diciamo il colore del rosso e degli anni, è nuovo di zecca, quindi
è vicino.
Ora, se uso qualcosa del tipo, diciamo s t r che viene fornito con questo oggetto, se faccio una stella o
una figura d'azione punto sottolineatura sottolineatura s r in questo modo.
E noi stampiamo questo.
Vediamo che otteniamo questo.
È esattamente la stessa cosa di noi che facciamo action figure SDR.
Come questo.
Guarda quello.
Questi metodi Dundar con doppia sottolineatura sono metodi speciali che Python riconosce.
Ad esempio, la stella Dundar, questo metodo speciale ci consente di utilizzare action figure come questa utilizzando la
funzione incorporata della stella.
In effetti, se vai alla documentazione di Python nella sezione dei nomi dei metodi speciali,
vedrai che possiamo fare personalizzazioni di base di questi metodi Dundar ed è un lungo elenco di tutti questi metodi
Dundar che possiamo usare.
Ora, non andare a leggerli tutti singolarmente.
Ce ne sono molti e non li userai così spesso.
Ci sono solo pochi casi specifici in cui li utilizzerai.
E l'idea è di sapere come modificarli e come funzionano sotto il cofano.
Così.
Esaminiamo alcuni esempi, ad esempio, modifichiamo ciò che fa l'ATSDR, qui
definirò il mio SDR.
Chiamerò me stesso.
E poi qui dentro, restituirò qualcosa di diverso, restituirò, diciamo, una stringa di fa.
Cioè, diciamo, colore da autodidatta.
Se eseguo questo.
divento rosso.
Ricordi come ha detto di non modificare i metodi Dundar?
Bene, a volte ti è permesso forse ci sono casi, casi speciali in cui vuoi che la
tua classe si comporti in un certo modo, proprio come dizionari, elenchi, tuple e tutti i nostri oggetti in Python possono comportarsi in
determinati modi.
Come si accedeva agli elenchi con un numero di indice e come si accedeva a un dizionario con la chiave.
Questi sono tutti implementati usando questi metodi duder.
E vedete qui che poiché l'abbiamo modificato, la stella ora ne restituisce una rossa chiamata action figure.
Non cambia le cose se non con una action figure, se eseguo questo, vedrai che esegue ancora action figure
come questa perché questa è una stringa.
La stella viene modificata solo quando la usiamo su questo oggetto specifico.
Così.
Quali altre cose possiamo fare?
Bene, possiamo anche cambiare il significato della lunghezza.
Così lungo, posso dire auto.
E qui dentro, posso solo tornare.
Ora, se stampo.
Lunghezza della figura d'azione.
E clicco su Esegui.
ne prendo cinque.
Molto bello, tra l'altro, se questa sottolineatura sta diventando un po' fastidiosa, cosa che francamente per me sta diventando un po' fastidiosa,
farò clic sulle impostazioni qui e rimuoverò semplicemente l'intelligenza del codice in modo che non mi dica quando il mio
codice è sbagliato, ma spero che tu possa semplicemente eseguirne il debug da soli.
Tutto bene.
Quindi eccoci, abbiamo appena cambiato la lunghezza di Dundar per restituirne cinque.
Continuiamo a sperimentare, possiamo anche fare qualcosa come underscore, underscore, delete ed delete.
Bene, usiamo effettivamente la parola chiave di eliminazione, che in realtà non abbiamo mai visto prima.
Eliminare.
Possiamo solo dire ritorno.
Eliminato.
Devi andare così e stampa qui, stampa cancellata se faccio clic su Esegui.
Vedo che ho restituito cancellato ora la parola chiave cancella che non ti ho davvero insegnato perché non è
qualcosa che vedrai spesso di solito.
Ciò può causare alcuni bug divertenti nei nostri programmi che mi piace evitare personalmente.
Ma la parola chiave elimina elimina una sorta di variabile che potremmo aver avuto nel nostro programma.
Destra.
Cosa altro c'è?
Cambiamo questo per usare qualcosa chiamato call.
E il carbone è interessante.
Diciamo che con il carbone torneremo e diciamo di sì, punto interrogativo.
La cosa bella di Carl è che ora dà alla nostra classe di giocattoli un po' di super potere, possiamo
dire action figure e poi dire, beh, con Carl, ora possiamo effettivamente chiamare l'oggetto reale con questi Brackett.
Quindi, usando la chiamata, ho questo modo speciale per chiamare una funzione che, tra l'altro, sotto il cofano, il modo in
cui siamo in grado di chiamare le funzioni è usare questa chiamata Dundar.
E se clicco, corro.
Capisco, quanto è bello?
Va bene, un'ultima, perché penso che tu stia iniziando a farti un'idea, come ho detto, questi
sono tutti disponibili qui.
Di solito non vuoi sovrascriverli, ma vuoi solo sapere che hai il potere di farlo.
Se scegli, il prossimo si chiama ottieni elemento.
Quindi definiamo get item.
Di nuovo, useremo self al primo parametro e poi diciamo io per index e
qui restituiremo self dot e aggiungiamo un attributo prima di aggiungerlo, dirò self dot my dict per il mio dizionario
e poi aggiungi il nome.
Lui va da te.
E facciamo ha animali domestici uguali a falsi.
Ora, usando questo, posso dire il mio.
DETTO.
E restituisci l'oggetto in base all'indice che gli diamo.
Quindi lascia che ti mostri cosa intendo, se ora stampo.
Action figure Dot, e qui, invece di fare il punto, facciamo le parentesi quadre proprio come accediamo forse ottenendo
un elemento del dizionario che ora possiamo usare per ottenere l'elemento dire quali proprietà abbiamo
nome.
Quindi diciamo il nome.
E se stampo questo OOP.
Ho dimenticato di aggiungere una virgola qui.
Proviamo di nuovo.
E se scorro verso il basso, puoi vedere che sono davvero bravo a leggere gli errori, l'action figure del nome Namir non
è definita perché è action figure, non Fugere.
È meglio, guarda, il mio nome, Yo-Yo, è stato in grado di accedere usando questa
notazione tra parentesi usando l'oggetto get Dundar molto, molto bello.
Quindi questi metodi magici speciali sono davvero interessanti perché ci permettono di fare alcune modifiche personalizzate
delle nostre classi.
E puoi anche capire come in Python i tipi predefiniti incorporati avevano accesso e capacità di avere tutte
queste sintassi speciali.
Adesso abbiamo anche questo potere.
Facciamo una pausa e facciamo un po' di esercizio.