Introduktion till Python Magic Method

I Python Magic-metoderna är det inte några guiderier. Det är bara dessa metoders natur som gör dem magiska. En metod är inget annat än i princip funktionen i Python-klassen. De inbyggda metoderna som inte kan kallas direkt är ”magiska metoder”. Magiska metoder kan inte åberopas direkt, det vill säga de åberopas indirekt som en effekt av ett annat samtal. Det är lätt att identifiera magiska metoder eftersom de har dubbel understrukna en framtill och andra i ryggen. Till exempel har _add_.These dubbla understreck har ett specifikt namn som är finansiärer. Så _add_ kallas som "dunder add dunder".

Vad är Python Magic Method?

  • Python är en tolkad, objektorienterad programmering som ger dig möjlighet att skriva procedurkod och / eller objektorienterad. Som vi vet att skapa objekt förenklar komplicerad hantering av datastrukturer. Förutom att magiska metoder underlättar förmågan att skapa objektorienterad programmering.
  • Innan vi dyker in i vad som är en magisk metod, låt oss förstå varför de i första hand skapas?
  • Nedan är ett exempel på klass ett med en magisk metod och det andra är utan den magiska metoden. I den första används __init__ magisk metod, som kan användas för att initialisera mer än en instansvariabel på en gång. En klass Sport definieras som att ta hänsyn till två instansvariabler som är namn och sport.
  • Båda instansvariablerna kan definieras på en gång med hjälp av __inti__ magiska metoden. I fall 2 upprepas samma sak men den här gången använder vi en inställd metod för att initialisera instansvariabeln. Här för två variabler måste vi kalla den här metoden två gånger.

Här kan vi se den magiska magiska metoden, på en gång kan vi definiera mer än en variabel instans.

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å i princip är magiska metoder något som kan underlätta den objektorienterade programmeringen.

Nu ska vi förstå vad är dessa?

  • Magiska metoder är allt för objektorienterad Python.
  • Python magiska metoder kan definieras som de speciella metoderna som kan lägga till "magi" i en klass.
  • Dessa magiska ord börjar och slutar med dubbla understreck, till exempel _init_ eller _add_.

Python magiska metoder

Python har många inbyggda magiska metoder för att nämna några är:

  • __i det__
  • __ny__
  • __del__
  • __magmuskler__
  • __Lägg till__
  • __sub__
  • __mul__

Vi kommer att diskutera några av de magiska metoderna för att förstå det bättre.

Låt oss nu ta __add__ magiska metoden:

A=5
A+3

Utgång: 8

Detsamma kan utföras med __add__ magi metod.

A.__add__(5)

Utgång: 10

Här används operator plus för att lägga till ett numeriskt värde till den numeriska variabeln. Samma kan utföras med den inbyggda magiska metoden __add__. Men som vi har diskuterat ska magiska metoder inte kallas direkt utan internt genom vissa andra metoder eller handlingar.

Komponenter

För att vara specifik kan vi separera magiska metoder i olika kategorier istället för att beskriva komponenter.

1. Objektkonstruktör och initierare

  • Magiska metoder används ofta i grunderna för programmering av python i klasskonstruktion och initiering.
  • Som vi har diskuterat __init__ magisk metod. Den här metoden används för att definiera initialisering av ett objekt i klassen.
  • __init__ är inte den första metoden som ska åberopas för att skapa objekt men den första magiska metoden __new__ åberopas som skapar en ny instans och kallar sedan __init__ magisk metod.

Låt oss se exemplet på samma:

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:

kallar magisk metod__nya__

kallar magisk metod__init__

Initiera instans 2 3

__nytt__ kan användas på många olika sätt, men detta visar ett enkelt exempel på denna magiska metod.

2. Jämförelse av magiska metoder

Python har ett antal magiska metoder som är utformade för att göra intuitiva jämförelser mellan objekt med användning av operatörer.

Några är listade nedan:

  • __lt __ (själv, annat): används för att kallas vid jämförelse med <operatör.
  • __le __ (själv, andra): används för att kallas vid jämförelse med <= operatör.
  • __eq __ (själv, andra): används för att kallas vid jämförelse med == operatör.
  • __ne __ (själv, andra): används för att kallas vid jämförelse med! = operatör.
  • __ge __ (själv, andra): används för att kallas vid jämförelse med> = operatör.

3. Infix-operatörer

Python har typiska inbyggda binära operatörer som magiska metoder.

Några är listade nedan:

  • __add__ (själv, andra): för tillägg
  • __sub__ (själv, annat): för subtraktion
  • __mul __ (själv, andra): för multiplikation

Fördelar med Python Magic Method

Python tillhandahåller "magiska metoder" eftersom de verkligen utför magi för ditt program.

De största fördelarna är:

Pythons magiska metoder tillhandahåller ett enkelt sätt att få föremål att bete sig som inbyggda typer, vilket innebär att man kan undvika motintuitiva eller icke-standardiserade sätt att utföra grundläggande operatörer. För t.ex.

vi har två ordböcker "dicta" och "dicta"

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

Produktion:

Traceback (senaste samtalet senast):

Fil "python", rad 1, in

TypeError: operandtyp (er) som inte stöds för +: 'dict' och 'dict'

Nu slutar detta med ett typfel eftersom ordbokstypen inte stöder tillägg. Nu kan vi utöka ordboksklassen och lägga till ”__add__” magisk metod:

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 önskad utgång.
(1: 'XYZ', 2: 'LMN')

Således skedde plötsligt magi bara genom att lägga till en magisk metod. Felet försvann som vi fick tidigare.

Slutsats

Magiska metoder är speciella metoder som påkallas indirekt och identifieras med dundrar eller dubbla understreck som __add__. För att bättre kunna använda Python-klasserna måste man känna åtminstone någon magisk metod som __init__, __new__. Jämförelse av operatörens magiska metoder ger python en fördel där instanser av objekt kan jämföras både för jämlikhet och ojämlikhet. I ett nötskal magiska metod gör magi till python programmering genom att minska komplexiteten.

Rekommenderade artiklar

Detta är en guide för Python Magic Method. Här diskuterar vi introduktionen till Python Magic Method, det är komponenter och fördelar samt några exempel. Du kan också gå igenom våra andra artiklar som föreslås för att lära dig mer–

  1. Palindrome i PHP
  2. Python-nyckelord
  3. Python IDE för Windows
  4. Medan Loop i Python
  5. C ++ Nyckelord

Kategori: