Je hebt hier lang op gewacht, want ik heb lang vermeden om over deze Dundar-magiemethoden te
praten.
In deze video gaan we eindelijk ontdekken wat ze nu doen.
We kunnen zien wat onze instantie heeft als methoden met behulp van de deur-methode.
En we hebben je verteld dat deze zijn geërfd van onze basisobjectklasse.
Dit onderstreept onze speciale methodes.
Onthoud hoe we dingen als LENTH hebben, bijvoorbeeld, waarmee we de lengte van een array kunnen bepalen.
Deze worden daadwerkelijk geïmplementeerd met behulp van deze Dundar-methoden.
Ze stellen ons in staat om Python-specifieke functies te gebruiken op objecten die met onze klasse zijn gemaakt.
Dus laat me je laten zien wat ik bedoel.
We gaan een nieuwe klas maken en dit wordt een speelgoedklas.
Nu, hier, zullen we een speeltje definiëren en het initialiseren met zelf.
Dan zeggen we dat het kleur en ouderdom heeft.
Nu zal zeggen dat kleur gelijk is aan kleur.
Dit zullen dus onze attributen zijn.
En H.
Geweldig.
Daar is onze klas nu, laten we zeggen dat we een actiefiguur willen maken.
Deze actiefiguur zal worden gemaakt met speelgoed, laten we zeggen de kleur van rood en de leeftijden, het is gloednieuw, dus het
is dichtbij.
Nu, als ik iets gebruik als, laten we zeggen s t r dat bij dit object hoort, als ik ster
of actiefiguur doe, punt onderstreping, onderstrepingsteken s t r zoals zo.
En we printen dit.
We zien dat we dit snappen.
Het is precies hetzelfde als wat wij doen met SDR action figure.
Soortgelijk.
Moet je zien.
Deze dubbele onderstrepingstekens van Dundar-methoden zijn speciale methoden die Python herkent.
Bijvoorbeeld, de Dundar-ster, deze speciale methode stelt ons in staat om actiefiguren zoals deze te gebruiken met behulp
van de ingebouwde sterfunctie.
Als je trouwens naar de Python-documentatie gaat onder de sectie met speciale methodenamen, zul je
zien dat we basisaanpassingen van deze Dundar-methoden kunnen doen en het is een lange lijst van al deze Dundar-methoden
die we kunnen gebruiken.
Ga ze nu niet allemaal lezen.
Het zijn er veel en je gaat ze niet zo vaak gebruiken.
Er zijn slechts enkele specifieke gevallen waarin u ze gaat gebruiken.
En het idee is om te weten hoe je ze kunt aanpassen en hoe ze onder de motorkap werken.
Dus.
Laten we een paar voorbeelden doornemen, laten we bijvoorbeeld aanpassen wat de ATSDR doet, ik
ga hier mijn eigen SDR definiëren.
Ik ga zelf bellen.
En dan hierbinnen, ga ik iets anders teruggeven, ik ga terug, laten we zeggen, een
F-snaar.
Dat is, laten we zeggen, autodidactische kleur.
Als ik dit uitvoer.
Ik word rood.
Weet je nog hoe hij zei de Dundar-methoden niet aan te passen?
Welnu, soms mag het, misschien zijn er gevallen, speciale gevallen waarin u wilt dat uw klasse
zich op een bepaalde manier gedraagt, net zoals woordenboeken, lijsten, tuples en al onze objecten in Python zich op bepaalde manieren
kunnen gedragen.
Hoe lijsten werden geopend met een indexnummer en een woordenboek werd geopend met de sleutel.
Die worden allemaal geïmplementeerd met behulp van deze duder-methoden.
En je ziet hier dat, omdat we dit hebben aangepast, de ster nu een rode teruggeeft die een actiefiguur wordt genoemd.
Het verandert niets anders dan met een actiefiguur, als ik dit uitvoer, zul je zien dat het nog steeds een actiefiguur
op deze manier uitvoert, omdat dit een string is.
De ster wordt alleen aangepast als we hem op dit specifieke object gebruiken.
Zoals zo.
Welke andere dingen kunnen we doen?
Welnu, we kunnen ook de betekenis van de lengte veranderen.
Zo lang, kan ik zelf zeggen.
En hierbinnen kan ik gewoon terugkeren.
Als ik nu print.
Lengte van actiefiguur.
En ik klik op uitvoeren.
Ik krijg er vijf.
Heel cool trouwens, als deze onderstreping een beetje vervelend begint te worden, wat eerlijk gezegd voor mij een beetje vervelend
wordt, ga ik hier op instellingen klikken en gewoon de code-intelligentie verwijderen, zodat het me niet zal vertellen
wanneer mijn code is verkeerd, maar hopelijk kun je het gewoon zelf debuggen.
Oke.
Dus daar gaan we, we hebben zojuist de lengte van Dundar veranderd in vijf.
Laten we blijven experimenteren, we kunnen ook iets doen als underscore, underscore, delete en delete.
Laten we het delete-sleutelwoord gebruiken, dat we eigenlijk nog niet eerder hebben gezien.
Verwijderen.
We kunnen gewoon zeggen: terugkeer.
verwijderd.
Je moet zo gaan en laten we gewoon hier printen, print verwijderd als ik op uitvoeren klik.
Ik zie dat ik het verwijdersleutelwoord dat ik je niet echt heb geleerd, heb teruggegeven, nu verwijderd, omdat het niet iets is
dat je normaal gesproken veel zult zien.
Dit kan enkele grappige bugs in onze programma's veroorzaken die ik persoonlijk graag vermijd.
Maar het delete-sleutelwoord verwijdert een soort variabele die we in ons programma hadden kunnen hebben.
Rechts.
Wat is er nog meer?
Laten we dit veranderen om iets genaamd call te gebruiken.
En steenkool is een interessante.
Laten we zeggen dat we met kolen terugkeren en laten we ja zeggen, vraagteken.
Het leuke aan Carl is dat het onze speelgoedklasse nu wat superkracht geeft, we kunnen actiefiguur zeggen en
dan zeggen, nou, met Carl kunnen we nu het eigenlijke object met deze Brackett's noemen.
Dus met call heb ik een speciale manier om een functie aan te roepen die trouwens, onder de
motorkap, de manier waarop we functies kunnen aanroepen deze Dundar-aanroep is.
En als ik klik, ren dan weg.
Ik snap ja, hoe cool is dat?
Oké, nog een laatste, want ik denk dat je het idee begint te krijgen, zoals ik al zei, deze
zijn hier allemaal beschikbaar.
Meestal wil je ze niet overschrijven, maar je wilt gewoon weten dat je de macht hebt om dit te doen.
Als je ervoor kiest, wordt de volgende get item genoemd.
Dus laten we het get-item definiëren.
Nogmaals, we gaan self gebruiken bij de eerste parameter en laten we dan zeggen I voor index en
hier zullen we self dot retourneren en laten we een attribuut toevoegen voordat we dat toevoegen, ik ga zeggen self dot my dict for mijn
woordenboek en voeg dan naam toe.
Hij gaat naar jou.
En laten we doen heeft huisdieren gelijk aan vals.
Nu, als ik dit gebruik, kan ik mijn zeggen.
DECT.
En retourneer het item op basis van de index die we het geven.
Dus laat me je laten zien wat ik bedoel, als ik nu ga printen.
Action figure Dot, en hier, in plaats van de punt te doen, doen we de vierkante haken, net zoals we toegang zouden krijgen, misschien
door een woordenboekitem te krijgen dat we nu kunnen gebruiken om het item te laten zeggen welke eigenschappen we een naam
hebben.
Dus laten we zeggen naam.
En als ik deze OOP afdruk.
Vergeten hier een komma toe te voegen.
Laten we dat nog eens proberen.
En als ik naar beneden scrol, kun je zien dat ik heel goed ben in het lezen van fouten. Namir-naam actiefiguur is niet
gedefinieerd omdat het een actiefiguur is, niet Fugere.
Dat is beter, kijk eens aan, mijn naam, Yo-Yo, kon toegang krijgen met deze
haakjesnotatie met het item 'krijgen' Dundar, heel, heel cool.
Deze speciale magische methoden zijn dus echt interessant omdat het ons in staat stelt om iets goeds te doen, wat
aangepaste aanpassingen van onze klassen.
En je kunt ook begrijpen hoe in Python ingebouwde standaardtypen toegang en mogelijkheden hadden om al deze speciale
syntaxis te hebben.
Die bevoegdheid hebben we nu ook.
Laten we een pauze nemen en een beetje oefenen.