Introduktion til Python Magic Method

I Python Magic-metoder er der ikke nogle troldmateriale. Det er bare arten af ​​disse metoder, der gør dem magiske. En metode er kun andet end grundlæggende funktionen i Python-klassen. De indbyggede metoder, der ikke kan kaldes direkte, er ”magiske metoder”. Magiske metoder kan ikke påberåbes direkte, det vil sige at de påberåbes indirekte som en effekt af et andet opkald. Det er let at identificere magiske metoder, fordi de har dobbelt understreget en foran og anden bagpå. For eksempel har _add_.These dobbelt understregning har et specifikt navn, der er funders. Så _add_ kaldes 'dunder add dunder'.

Hvad er Python Magic-metoden?

  • Python er en fortolket, objektorienteret programmering, der giver dig mulighed for at skrive procedurekode og / eller objektorienteret. Som vi ved, at oprettelse af objekter forenkler kompliceret håndtering af datastrukturer. Derudover letter magiske metoder muligheden for at oprette objektorienteret programmering.
  • Før vi dykker ind i hvad er en magisk metode, lad os forstå, hvorfor de i første omgang er oprettet?
  • Nedenfor er et eksempel på klasse en ved hjælp af en magisk metode, og det andet er uden den magiske metode. I den første anvendes __init__ magisk metode, som kan bruges til at initialisere mere end en forekomstvariabel på én gang. En klassesport defineres som at tage to forekomstvariabler i betragtning, som er navn og sport.
  • Begge forekomstvariabler kan defineres på én gang ved hjælp af __inti__ magiske metode. I tilfælde 2 gentages den samme ting, men denne gang bruger vi en sæt metode til at initialisere forekomstvariablen. Her for 2 variabler skal vi kalde denne metode to gange.

Her kan vi se den magiske magiske metode, på én gang kan vi definere mere end et variabelt tilfælde.

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())

Produktion:

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())

Produktion:

Så dybest set er magiske metoder noget, der kan lette den objektorienterede programmering.

Lad os nu forstå, hvad er disse?

  • Magiske metoder er alt for objektorienteret Python.
  • Python-magiske metoder kan defineres som de specielle metoder, der kan tilføje ”magi” til en klasse.
  • Disse magiske ord starter og slutter med dobbelt understregning, f.eks. _Init_ eller _add_.

Python magiske metoder

Python har mange indbyggede magiske metoder til at nævne nogle af er:

  • __i det__
  • __ny__
  • __del__
  • __abs__
  • __tilføje__
  • __sub__
  • __mul__

Vi vil diskutere nogle af de magiske metoder til at forstå det bedre.

Lad os nu tage __add__ magiske metode:

A=5
A+3

Output: 8

Det samme kan udføres med __add__ magiske metode.

A.__add__(5)

Output: 10

Her bruges operator plus til at tilføje en numerisk værdi til den numeriske variabel A. Det samme kan udføres ved hjælp af den indbyggede __add__ magiske metode. Som vi har diskuteret, er det ikke meningen, at magiske metoder skal kaldes direkte, men internt gennem nogle andre metoder eller handlinger.

komponenter

For at være specifik kan vi adskille magiske metoder i forskellige kategorier i stedet for at beskrive komponenter.

1. Objektkonstruktør og initialisator

  • Magiske metoder bruges vidt i grundlæggende python-programmering i klassekonstruktion og initialisering.
  • Som vi har diskuteret __init__ magisk metode. Denne metode er blevet brugt til at definere initialiseringen af ​​et objekt i klassen.
  • __init__ er ikke den første metode, der kaldes til objektoprettelse, men den første magiske metode __ny__ kaldes op, som opretter en ny instans og derefter kalder __init__ magisk metode.

Lad os 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)

Produktion:

kalder magi metode__new__

kaldende magisk metode__init__

Initialisering af forekomst 2 3

__ nyt kan bruges på en lang række måder, men dette viser et simpelt eksempel på denne magiske metode.

2. Sammenligning af magiske metoder

Python har en række magiske metoder, der er designet til at foretage intuitiv sammenligning mellem objekter med brug af operatører.

Nogle er anført nedenfor:

  • __lt __ (self, other): bruges til at blive kaldt til sammenligning ved hjælp af <operator.
  • __le __ (self, other): bruges til at blive kaldt til sammenligning ved hjælp af <= operator.
  • __eq __ (self, other): bruges til at blive kaldt til sammenligning ved hjælp af == operator.
  • __ne __ (self, other): bruges til at blive kaldt til sammenligning ved hjælp af! = operator.
  • __ge __ (self, other): bruges til at blive kaldt til sammenligning ved hjælp af> = operator.

3. Infix-operatører

Python har typiske indbyggede binære operatører som magiske metoder.

Nogle er anført nedenfor:

  • __add__ (selv, anden): til tilføjelse
  • __sub__ (selv, anden): til subtraktion
  • __mul __ (selv, anden): til multiplikation

Fordele ved Python Magic Method

Python leverer "magiske metoder", fordi de virkelig udfører magi til dit program.

De største fordele er:

Pythons magiske metoder giver en enkel måde at få objekter til at opføre sig som indbyggede typer, hvilket betyder, at man kan undgå modintuitive eller ikke-standardiserede måder at udføre basale operatører på. For f.eks

vi har to ordbøger 'dicta' og 'dicta'

dicta = (1 : "XYZ")
dictb = (2 : "LMN")
dict1 + dict2

Produktion:

Traceback (seneste opkald sidst):

Fil “python”, linje 1, ind

TypeError: ikke-understøttet operand type (r) for +: 'dict' og 'dict'

Nu ender dette med en typefejl, fordi ordbogstypen ikke understøtter tilføjelse. Nu kan vi udvide ordbogsklassen og tilføje ”__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)

Nu får vi den ønskede output.
(1: 'XYZ', 2: 'LMN')

Således skete pludselig magi bare ved at tilføje en magisk metode. Fejlen forsvandt, som vi fik tidligere.

Konklusion

Magiske metoder er specielle metoder, der påberåbes indirekte og identificeres med dunders eller dobbelt understregning som __add__. For at bruge Python-klasser bedre, skal man i det mindste kende nogle magiske metoder som __init__, __new__. Sammenligningsoperatørs magiske metoder giver python en kant, hvor forekomster af genstande kan sammenlignes for lighed såvel som ulighed. I en nøddeskal magisk metode gør magi til python programmering ved at reducere kompleksiteten.

Anbefalede artikler

Dette er en guide til Python Magic Method. Her diskuterer vi introduktionen til Python Magic Method, dets komponenter og fordele samt nogle eksempler. Du kan også gennemgå vores andre foreslåede artikler for at lære mere–

  1. Palindrome i PHP
  2. Python-nøgleord
  3. Python IDE til Windows
  4. Mens Loop i Python
  5. C ++ Nøgleord

Kategori: