Introduksjon til Python Magic Method
I Python Magic er ikke metodene noen trollmanns ting. Det er bare naturen til disse metodene som gjør dem magiske. En metode er ikke annet enn i utgangspunktet funksjonen i Python-klassen. De innebygde metodene som ikke kan kalles direkte er "magiske metoder". Magiske metoder kan ikke påberopes direkte, det vil si at de påberopes indirekte som en effekt av en annen samtale. Det er lett å identifisere magiske metoder fordi de har dobbelt understreking foran og andre bak. For eksempel har _add_.These doble understrekinger har et spesifikt navn som er innbyggere. Så _add_ kalles som 'dunder add dunder'.
Hva er Python Magic Method?
- Python er en tolket, objektorientert programmering som gir deg muligheten til å skrive prosedyre-kode og / eller objektorientert. Som vi vet at å lage objekter forenkler komplisert håndtering av datastrukturer. I tillegg til at magiske metoder letter muligheten til å lage objektorientert programmering.
- Før vi dykker inn i hva som er en magisk metode, la oss forstå hvorfor de i utgangspunktet er opprettet?
- Nedenfor er et eksempel på klasse en som bruker en magisk metode og det andre er uten den magiske metoden. I den første brukes __init__ magisk metode, som kan brukes til å initialisere mer enn én forekomstvariabel på en gang. En klasse Sport er definert som å ta to forekomstvariabler med i betraktning som er navn og sport.
- Begge forekomstvariabler kan defineres på en gang ved hjelp av __inti__ magiske metoden. I tilfelle 2 gjentas det samme, men denne gangen bruker vi en angitt metode for å initialisere forekomstvariabelen. Her for to variabler, må vi kalle denne metoden to ganger.
Her kan vi se magien med magisk metode, på en gang kan vi definere mer enn ett variabelt forekomst.
class Sports():
def __init__(self, name, sport):
self.name = name
self.sport= sport
def get_name(self):
return self.name
def get_sport(self):
return self.sport
first = Sports('john', 'Game of Thrones')
print(first.get_name())
print(first.get_sport())
Produksjon:
class Sports():
def set_name(self, name):
self.name = name
def set_sport(self, sport):
self.sport= sport
def get_name(self):
return self.name
def get_sport(self):
return self.sport
second = Sports()
second.set_name('Messi')
second.set_sport('Soccer')
print(second.get_name())
print(second.get_sport())
Produksjon:
Så i utgangspunktet er magiske metoder noe som kan lette den objektorienterte programmeringen.
La oss nå forstå hva er disse?
- Magiske metoder er alt for objektorientert Python.
- Python magiske metoder kan defineres som de spesielle metodene som kan legge til "magi" i en klasse.
- Disse magiske ordene starter og slutter med doble understrekinger, for eksempel _init_ eller _add_.
Python magiske metoder
Python har mange innebygde magiske metoder for å nevne noen er:
- __i det__
- __ny__
- __del__
- __abs__
- __Legg til__
- __under__
- __mul__
Vi vil diskutere noen av de magiske metodene for å forstå det bedre.
La oss ta den __add__ magiske metoden:
A=5
A+3
Utgang: 8
Det samme kan utføres med __add__ magisk metode.
A.__add__(5)
Utgang: 10
Her brukes operator plus for å legge til en numerisk verdi til den numeriske variabelen A. Det samme kan utføres ved hjelp av den innebygde __add__ magiske metoden. Som vi har diskutert, er det ikke meningen at magiske metoder skal kalles direkte, men internt, gjennom noen andre metoder eller handlinger.
komponenter
For å være spesifikke kan vi adskille magiske metoder i forskjellige kategorier i stedet for å beskrive komponenter.
1. Objektkonstruktør og initialiserer
- Magiske metoder brukes mye i grunnleggende programmer for python-programmering i klassekonstruksjon og initialisering.
- Som vi har diskutert __init__ magisk metode. Denne metoden er brukt for å definere initialiseringen av et objekt i klassen.
- __init__ er ikke den første metoden som blir påberopt for objektskaping, men den første magiske metoden __ny__ blir påkalt som oppretter en ny forekomst og deretter kaller __init__ magisk metode.
La oss se eksemplet på det samme:
class AbstractClass(object):
def __new__(cls, a, b):
print("calling magic method__new__")
instance = super(AbstractClass, cls).__new__(cls)
instance.__init__(a, b)
def __init__(self, a, b):
print('calling magic method__init__')
print ("Initializing Instance", a, b)
a=AbstractClass(2, 3)
Produksjon:
kaller magisk metode__nytt__
kaller magisk metode__init__
Initialisere forekomst 2 3
__nytt__ kan brukes på mange måter, men dette viser et enkelt eksempel på denne magiske metoden.
2. Sammenligning av magiske metoder
Python har en rekke magiske metoder som er designet for å gjøre intuitive sammenligninger mellom objekter med bruk av operatører.
Noen er listet nedenfor:
- __lt __ (self, other): brukes til å bli sammenliknet med <operator.
- __le __ (self, other): brukes til å bli sammenliknet med <= operator.
- __eq __ (self, other): brukes til å bli kalt sammenligning ved å bruke == operator.
- __ne __ (self, other): brukes til å bli kalt sammenligning ved å bruke! = operator.
- __ge __ (self, other): brukes til å bli kalt sammenligning ved bruk av> = operator.
3. Infix-operatører
Python har typiske innebygde binære operatører som magiske metoder.
Noen er listet nedenfor:
- __add__ (egen, annen): for tillegg
- __sub__ (egen, annen): for subtraksjon
- __mul __ (egen, annen): for multiplikasjon
Fordeler med Python Magic Method
Python gir "magiske metoder" fordi de virkelig utfører magi for programmet ditt.
De største fordelene er:
Pythons magiske metoder gir en enkel måte å få objekter til å oppføre seg som innebygde typer, noe som betyr at man kan unngå motintuitive eller ikke-standardiserte måter å utføre basale operatører på. For f.eks
vi har to ordbøker 'dicta' og 'dicta'
dicta = (1 : "XYZ")
dictb = (2 : "LMN")
dict1 + dict2
Produksjon:
Traceback (siste samtale sist):
Fil “python”, linje 1, inn
TypeError: operandtype (er) som ikke støttes for +: 'dict' og 'dict'
Nå ender dette opp med en typefeil fordi ordbokstypen ikke støtter tillegg. Nå kan vi utvide ordbokklassen og legge til "__add__" magisk metode:
class AddDict(dict):
def __add__(self, dicts):
self.update(dicts)
return AddDict(self)
dicta = AddDict((1 : "XYZ"))
dictb = AddDict((2 : "LMN"))
print (dicta + dictb)
Nå får vi ønsket utdata.
(1: 'XYZ', 2: 'LMN')
Dermed skjedde plutselig magi bare ved å legge til en magisk metode. Feilen forsvant som vi fikk tidligere.
Konklusjon
Magiske metoder er spesielle metoder som påberopes indirekte og identifiseres med dunders eller doble understrekninger som __add__. For å bruke Python-klasser bedre, må man i det minste kjenne til noen magiske metoder som __init__, __new__. Sammenligningsoperatørens magiske metoder gir python en kant der forekomster av objekter kan sammenlignes for likhet og ulikhet. I et nøtteskall magisk metode gjør magi til python programmering ved å redusere kompleksiteten.
Anbefalte artikler
Dette er en guide til Python Magic Method. Her diskuterer vi introduksjonen til Python Magic Method, det er komponenter og fordeler samt noen eksempler. Du kan også gå gjennom de andre foreslåtte artiklene våre for å lære mer–
- Palindrome i PHP
- Python nøkkelord
- Python IDE for Windows
- Mens Loop i Python
- C ++ nøkkelord