Python Dunder -metoder

Python Dunder -metoder
Dunder -metoder kalles også spesielle teknikker som er et sett med forhåndsdefinerte metoder i Python som kan brukes til å forbedre klassene dine. Fordi de begynner og avsluttes med doble understrekninger, for eksempel __init__ eller __str__, er de lett identifiserbare. I Python er disse "dunder" eller "spesielle metoder" noen ganger kjent som "magiske metoder.”Å adoptere denne frasen kan imidlertid få ting til å virke mer sofistikerte enn de er. Disse teknikkene bør håndteres som om de har innebygde språkaspekter.

Dunder -metoder er ekstremt sterke python iboende metoder som kan brukes til å utvikle komplekse klasser. Denne leksjonen gir en trinn-for-trinns guide med Python-metoder og hvordan du bruker dem, komplett med eksempler. Konsistensen av Pythons popularitet kan spores til språkets popularitet. For iboende metoder som ABS (), Len (), Sortered () og mange andre, lar Python deg implementere dine tilpassede objekter. Alt du trenger å gjøre nå er å legge til noen unike metoder i klassen din (Dunder -metoder).

I denne artikkelen har vi brukt setninger som Dunder -metoder, magiske metoder og spesielle teknikker, som alle faller i samme kategori. Før vi går inn i opplæringen, bør du være klar over noe. Python-programmerere som har erfaring med objektorientert programmering (OOP) vil gjenkjenne __init__-metoden. Dunder -metoden ble oppkalt etter de doble understrekene, som er kjent som Dunder i Python. Fordi det er magiske metoder i Ruby som oppfyller samme formål, refererer noen Python -programmerere til dem som sådan i Python. Vi refererer vanligvis til dem som spesielle metoder fordi det er det Python -manualen kaller dem. Resultat, hvis du ser disse metodene i Python, antar du at de er spesielle metoder.

Eksempel 1:

I likhet med konstruktører på andre programmeringsspråk, når en forekomst av en klasse dannes, blir __init__ -funksjonen for initialisering påkalt uten samtale. I Python -klasser er “__init__” en reservert metode. I objektorientert terminologi blir det referert til som et funksjonsobjekt () [Native Code]. Denne metoden påberopes når et objekt dannes fra en klasse for å tillate klassen å befolke dens egenskaper. Vi kan bruke '+' -operatøren til å kombinere to strenger uten å måtte bruke eksplisitt typecasting på grunn av disse metodene. Her er et detaljert eksempel på hvordan du utfører dette. Vi erklærte strengklassen vår først, etterfulgt av den magiske funksjonen for å lage et objekt. Objektopprettelsen er fullført etter førerkoden, og objektstedet rapporteres ut på slutten.

Kodelinjene ovenfor skriver bare ut strengobjektets minneadresse.

Eksempel 2:

Vi bruker __repr__ -metoden for å representere objektet vårt i følgende eksempel. Den magiske metoden __repr__ representerer en klasseforekomst i en streng. Når vi prøver å skrive ut et klasseobjekt, kalles __repr__ -funksjonen, som gir en streng. Som standard returnerer repr () strengrepresentasjonen av verdien som leveres til evalfunksjonen. Som standard gir Custom Class -objektet en streng i vinkelbraketter som inneholder objektets navn og adresse. Bortsett fra tillegg av __repr__ -metoden etter at vi har brukt den magiske metoden for å initialisere objektet, er koden den samme som før.

Her kan du se at ovennevnte har vist strengen med hell.

Eksempel 3:

Vi vil nå legge til __add__ -funksjonen i strengklassen. Klassen forekomsters attributter legges til ved hjelp av __add__ magisk metode. La oss late som om objekt1 tilhører klasse A og objekt2 til klasse B og at begge disse klassene har et attributt kalt 'A' som inneholder et heltall. Etter at operasjonsobjekt1 + Object2 er ferdig, legger __add__ -funksjonen implisitt til attributtene til disse objektene, for eksempel Object1.A + Object2.en. Vi initialiserte strengklassen på nytt i koden, som du kan se i den første kodelinjen. Etter det benyttet vi den magiske måten å få gjenstanden i gang. Strengobjektet ble deretter skrevet ut ved hjelp av __add__ -metoden. Objektet opprettes etter driverkoden, som er den neste kodelinjen. I den siste kodelinjen samlet vi et strengobjekt med en streng.

Klassestreng:

Nedenfor er utgangen fra den ovennevnte koden.

Konklusjon:

Magiske metoder er Python -metoder med doble understreker i begynnelsen og konklusjonen. Dunder -metoder eller teknikker er et annet navn for dem. Magiske metoder er ikke ment å bli kalt direkte av brukeren; I stedet kalles de internt av klassen som reaksjon på en spesifikk handling. __Add __ () -metoden kalles internt når du bruker + -operatøren til å legge til to tall, for eksempel. Pythons innebygde klasser definerer mange magiske metoder. For å finne ut hvor mange magiske metoder en klasse har arvet, kan du bruke DIR () -funksjonen.