Introducere în Metoda Python Magic

În Python Magic metodele nu sunt unele lucruri de vrăjitorie. Este doar natura acestor metode care le face magice. O metodă nu este altceva decât funcția din clasa Python. Metodele încorporate care nu pot fi numite direct sunt „metode magice”. Metodele magice nu pot fi invocate direct, adică sunt invocate indirect ca efect al unui alt apel. Este ușor de identificat metodele magice, deoarece au o notă dublă subliniată una în față și alta în spate. De exemplu, _add_.Aceste subcontracturi duble au un nume specific care este finanțatorii. Deci, _add_ este numit ca "adăugare dunder".

Ce este Metoda Magic Python?

  • Python este o programare interpretată, orientată pe obiect, care vă oferă posibilitatea de a scrie cod procedural și / sau orientat pe obiecte. După cum știm că crearea Obiectelor simplifică manipularea structurilor de date complicate. În plus, metodele magice ușurează capacitatea de a crea o programare orientată pe obiecte.
  • Înainte de a scufunda în ce este o metodă magică, să înțelegem de ce în primul rând sunt create?
  • Mai jos este prezentat un exemplu de clasă una folosind o metodă magică și celălalt este fără metoda magică. În prima metodă se folosește metoda magică __init__, care poate fi utilizată pentru inițializarea a mai mult de o variabilă de instanță într-o dată. O clasă Sports este definită ca luând în considerare două variabile de instanță care sunt numele și sportul.
  • Ambele variabile de instanță pot fi definite dintr-o dată folosind metoda magică __inti__. În cazul 2, același lucru se repetă, dar de data aceasta folosim o metodă setată pentru a inițializa variabila de instanță. Aici pentru 2 variabile, trebuie să apelăm această metodă de două ori.

Aici putem vedea magia metodei magiei, dintr-o singură dată putem defini mai multe instanțe variabile.

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

ieşire:

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

ieşire:

Deci, practic, metodele magice sunt ceva care poate ușura programarea orientată pe obiect.

Acum hai să înțelegem care sunt acestea?

  • Metodele magice sunt totul pentru Python orientat pe obiecte.
  • Metodele magice Python pot fi definite ca metodele speciale care pot adăuga „magie” unei clase.
  • Aceste cuvinte magice încep și se termină cu scoruri subliniere duble, de exemplu, _init_ sau _add_.

Metode Magic Python

Python are multe metode magice încorporate pentru a numi unele sunt:

  • __init__
  • __nou__
  • __del__
  • __abs__
  • __adăuga__
  • __sub__
  • __mul__

Vom discuta unele dintre metodele magice pentru a înțelege mai bine.

Acum să luăm metoda magică __add__:

A=5
A+3

Rezultat: 8

Același lucru poate fi efectuat cu metoda magică __add__.

A.__add__(5)

Rezultat: 10

Aici operatorul plus este folosit pentru adăugarea unei valori numerice la variabila numerică A. Același lucru poate fi efectuat folosind metoda magică __add__ încorporată. Cu toate acestea, așa cum am discutat, metodele magice nu trebuie să fie numite direct, ci intern, prin unele alte metode sau acțiuni.

Componente

Pentru a fi specifici, putem separa metodele magice în diferite categorii în loc să descriem componente.

1. Constructor și inițializator de obiecte

  • Metodele Magic sunt utilizate pe scară largă în bazele de programare piton în construcția clasei și inițializare.
  • După cum am discutat despre metoda magică __init__. Această metodă este folosită pentru a defini inițializarea unui obiect din clasă.
  • __init__ nu este prima metodă invocată pentru crearea obiectelor, cu toate acestea, prima metodă magică __new__ este invocată, care creează o nouă instanță și apoi apelează la metoda magică __init__.

Să vedem exemplul aceluiași:

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)

ieşire:

chemarea metodei magice__new__

chemarea metodei magice__init__

Inițializarea instanței 2 3

__new__ poate fi utilizat într-o mare varietate de moduri, dar acest lucru arată un exemplu simplu al acestei metode magice.

2. Metode de comparație Magic

Python are o serie de metode magice care sunt concepute pentru a face comparații intuitive între obiecte cu utilizarea operatorilor.

Unele sunt enumerate mai jos:

  • __lt __ (self, other): este apelat la comparație folosind <operator.
  • __le __ (self, other): este apelat la comparație folosind <= operator.
  • __eq __ (self, other): este apelat la comparație folosind == operator.
  • __ne __ (self, other): este apelat la comparație folosind! = operator.
  • __ge __ (self, other): este apelat la comparație folosind> = operator.

3. Operatori Infix

Python are operatori binari integrați tipici ca metode magice.

Unele sunt enumerate mai jos:

  • __add__ (sine, altul): pentru adăugare
  • __sub__ (sine, altul): pentru scădere
  • __mul __ (sine, altul): pentru înmulțire

Avantajele metodei Python Magic

Python oferă „metode magice”, deoarece acestea realizează într-adevăr magie pentru programul tău.

Cele mai mari avantaje sunt:

Metodele magice ale lui Python oferă o modalitate simplă de a face obiectele să se comporte ca tipuri încorporate, ceea ce înseamnă că se pot evita modalități contra-intuitive sau non-standard de a efectua operatori de bază. De exemplu,

avem două dicționare „dicta” și „dicta”

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

ieşire:

Urmărire (ultimul apel recent):

Fișier „python”, linia 1, în

TypeError: tip (uri) de operanță neacceptate pentru +: 'dict' și 'dict'

Acum, aceasta se termină cu o eroare de tip, deoarece tipul de dicționar nu acceptă adăugarea. Acum, putem extinde clasa de dicționar și adăugăm metoda magică „__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)

Acum, obținem rezultatul dorit.
(1: 'XYZ', 2: 'LMN')

Astfel, brusc magia s-a întâmplat doar prin adăugarea unei metode magice. Eroarea a dispărut pe care o devenisem mai devreme.

Concluzie

Metodele magice sunt metode speciale care sunt invocate indirect și sunt identificate cu dunderi sau subpuncte duble ca __add__. Acum, pentru a folosi mai bine clasele Python, trebuie să cunoaștem cel puțin o metodă magică precum __init__, __new__. Metodele magice ale operatorului de comparație oferă pitonului o margine în care instanțele de obiecte pot fi comparate atât pentru egalitate, cât și pentru inegalitate. Într-o scurtă metodă magică, faceți programarea magică până la python prin reducerea complexității.

Articole recomandate

Acesta este un ghid despre Metoda Python Magic. Aici vom discuta despre introducerea Metodei Python Magic, componentele și avantajele sale, precum și câteva exemple. Puteți parcurge și alte articole sugerate pentru a afla mai multe -

  1. Palindrom în PHP
  2. Cuvinte cheie Python
  3. Python IDE pentru Windows
  4. În timp ce Loop în Python
  5. Cuvinte cheie C ++