Úvod do metódy Python Magic

V Python Magic metódy nie sú nejaké čarodejnícke veci. Je to práve charakter týchto metód, vďaka ktorým sú čarovné. Metóda nie je nič iné ako funkcia v triede Python. Vstavané metódy, ktoré nemožno priamo nazvať, sú „magické metódy“. Kúzelné metódy sa nedajú vyvolať priamo, to znamená, že sa vyvolávajú nepriamo v dôsledku iného hovoru. Je ľahké identifikovať magické metódy, pretože majú dvojitý podčiarknutý jeden vpredu a druhý v chrbte. Napríklad: _add_.These double podčiarknutia majú špecifický názov, ktorý je donory. Takže _add_ sa nazýva 'dunder add dunder'.

Čo je to metóda Python Magic?

  • Python je interpretované objektovo orientované programovanie, ktoré vám umožňuje písať procedurálny kód alebo objektovo orientovaný program. Ako vieme, vytváranie objektov zjednodušuje spracovanie zložitých dátových štruktúr. Okrem toho magické metódy uľahčujú vytváranie objektovo orientovaného programovania.
  • Pred ponorením do akej magickej metódy pochopíme, prečo sú na prvom mieste vytvorené?
  • Nasleduje jeden príklad triedy 1 pomocou magickej metódy a druhý je bez magickej metódy. V prvej sa používa __init__ magická metóda, ktorá sa môže použiť na inicializáciu viacerých premenných inštancie naraz. Trieda Šport je definovaná ako zohľadnenie dvoch premenných inštancie, ktorými sú meno a šport.
  • Obidve premenné inštancie je možné definovať naraz pomocou magickej metódy __inti__. V prípade 2 sa to isté opakuje, ale tentoraz používame metódu set na inicializáciu premennej inštancie. Tu pre 2 premenné musíme túto metódu zavolať dvakrát.

Tu vidíme metódu mágie mágie, na jednom mieste môžeme definovať viac ako jednu premennú.

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

Výkon:

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

Výkon:

Takže magické metódy sú v podstate niečo, čo môže uľahčiť objektovo orientované programovanie.

Teraz pochopme, čo to je?

  • Magické metódy sú všetko pre objektovo orientovaný Python.
  • Pythonove magické metódy možno definovať ako špeciálne metódy, ktoré môžu do triedy pridať „magické“.
  • Tieto kúzelné slová začínajú a končia dvojitými znakmi podčiarknutia, napríklad _init_ alebo _add_.

Metódy Python Magic

Python má veľa vstavaných magických metód na pomenovanie niektorých z nich:

  • __init__
  • __Nový__
  • __del__
  • __abs__
  • __add__
  • __sub__
  • __mul__

Budeme diskutovať o niektorých magických metódach, aby sme ich lepšie pochopili.

Teraz používajme metódu __add__ magic:

A=5
A+3

Výstup: 8

To isté sa dá vykonať pomocou __add__ magickej metódy.

A.__add__(5)

Výstup: 10

Tu sa operátor plus používa na pridanie číselnej hodnoty do numerickej premennej A. To isté sa dá vykonať pomocou zabudovanej __add__ magickej metódy. Ako sme však už diskutovali, nemalo by sa nazývať magické metódy priamo, ale interne, prostredníctvom niektorých ďalších metód alebo akcií.

súčasti

Aby sme boli konkrétni, môžeme namiesto popisu komponentov rozdeliť magické metódy do rôznych kategórií.

1. Konštruktor a inicializátor objektov

  • Magické metódy sa široko používajú v základoch programovania pythonu v konštrukcii triedy a inicializácii.
  • Ako sme už diskutovali __init__ magickú metódu. Táto metóda sa používa na definovanie inicializácie objektu v triede.
  • __init__ nie je prvá metóda, ktorá sa má vyvolať pri vytváraní objektov, ale vyvolá sa prvá magická metóda __new__, ktorá vytvorí novú inštanciu a potom volá metódu __init__ magic.

Pozrime sa na príklad toho istého:

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)

Výkon:

volanie kúzelnej metódy__new__

volanie kúzelnej metódy__init__

Inicializácia inštancie 2 3

__new__ sa dá použiť rôznymi spôsobmi, ale to ukazuje jednoduchý príklad tejto magickej metódy.

2. Porovnanie magických metód

Python má množstvo magických metód, ktoré sú navrhnuté tak, aby intuitívne porovnávali objekty pomocou operátorov.

Niektoré z nich sú uvedené nižšie:

  • __lt __ (self, other): používa sa na porovnanie pri použití <operátor.
  • __le __ (samostatne, iné): používa sa na porovnanie pri použití operátora <=.
  • __eq __ (samostatne, iné): používa sa na porovnanie pri použití operátora ==.
  • __ne __ (self, other): zvykne sa volať porovnaním pomocou operátora! =.
  • __ge __ (samostatne, iné): používa sa na porovnanie pri použití operátora> =.

3. Infix Operators

Python má typické binárne operátory ako magické metódy.

Niektoré z nich sú uvedené nižšie:

  • __add__ (samostatne, iné): na doplnenie
  • __sub__ (samostatne, iné): na odpočítanie
  • __mul __ (samostatne, iné): pre množenie

Výhody metódy Python Magic

Python poskytuje „magické metódy“, pretože skutočne vykonávajú kúzlo pre váš program.

Najväčšie výhody sú:

Pythonove magické metódy poskytujú jednoduchý spôsob, ako zaistiť, aby sa objekty správali ako vstavané typy, čo znamená, že je možné vyhnúť sa intuitívnym alebo neštandardným spôsobom vykonávania základných operátorov. Napríklad,

máme dva slovníky 'dicta' a 'dicta'

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

Výkon:

Traceback (posledný posledný hovor):

Súbor „python“, riadok 1, v

TypeError: nepodporované typy operandov pre +: 'dict' a 'dict'

Teraz to končí chybou typu, pretože typ slovníka nepodporuje pridávanie. Teraz môžeme rozšíriť triedu slovníkov a pridať magickú metódu „__add__“:

class AddDict(dict):
def __add__(self, dicts):
self.update(dicts)
return AddDict(self)
dicta = AddDict((1 : "XYZ"))
dictb = AddDict((2 : "LMN"))
print (dicta + dictb)

Teraz dostávame požadovaný výstup.
(1: 'XYZ', 2: 'LMN')

Náhle sa tak stalo kúzlom iba pridaním magickej metódy. Táto chyba zmizla, čo sme skôr.

záver

Kúzelné metódy sú špeciálne metódy, ktoré sa používajú nepriamo a sú označené pomocou dunders alebo double podčiarknutia ako __add__. Aby sme mohli lepšie používať triedy Python, musíme poznať aspoň nejakú magickú metódu ako __init__, __new__. Porovnanie magických metód operátora poskytuje kraj, kde je možné porovnávať inštancie objektov z hľadiska rovnosti, ako aj nerovnosti. Stručne povedané, kúzelná metóda robí kúzla až python programovanie znížením zložitosti.

Odporúčané články

Toto je sprievodca metódou Python Magic. Tu diskutujeme úvod do metódy Python Magic, jej komponenty a výhody, ako aj niektoré príklady. Viac informácií nájdete aj v ďalších navrhovaných článkoch -

  1. Palindróm v PHP
  2. Python Kľúčové slová
  3. Python IDE pre Windows
  4. Zatiaľ čo slučka v Pythone
  5. C ++ Kľúčové slová

Kategórie: