Wprowadzenie do Python Magic Method
W Python Magic metody nie są magicznymi rzeczami. Właśnie natura tych metod czyni je magicznymi. Metoda to po prostu funkcja w klasie Python. Wbudowane metody, których nie można bezpośrednio wywołać, to „metody magiczne”. Metod magicznych nie można wywoływać bezpośrednio, tzn. Wywołuje się je pośrednio w wyniku innego wywołania. Łatwo jest zidentyfikować magiczne metody, ponieważ podwójnie podkreślono jedną z przodu, a drugą z tyłu. Na przykład _add_. Te podwójne podkreślenia mają konkretną nazwę, która jest fundatorami. Więc _add_ jest nazywany „dunder add dunder”.
Czym jest Python Magic Method?
- Python jest interpretowanym programowaniem obiektowym, które daje możliwość pisania kodu proceduralnego i / lub obiektowego. Jak wiemy, tworzenie obiektów upraszcza obsługę skomplikowanych struktur danych. Oprócz tego magiczne metody ułatwiają tworzenie programowania obiektowego.
- Przed zanurzeniem się w to, co jest magiczną metodą, zrozummy, dlaczego w pierwszej kolejności są tworzone?
- Poniżej znajduje się jeden przykład klasy pierwszej używającej magicznej metody, a drugi nie ma magicznej metody. W pierwszym z __init__ używana jest magiczna metoda, której można użyć do zainicjowania więcej niż jednej zmiennej instancji za jednym razem. Klasa Sport jest definiowana jako uwzględniająca dwie zmienne instancji, tj. Nazwę i sport.
- Obie zmienne instancji można zdefiniować za jednym razem przy użyciu magicznej metody __inti__. W przypadku 2 to samo się powtarza, ale tym razem używamy metody set do zainicjowania zmiennej instancji. Tutaj dla 2 zmiennych musimy wywołać tę metodę dwa razy.
Tutaj widzimy metodę magii magii, za jednym razem możemy zdefiniować więcej niż jedną instancję zmiennej.
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())
Wynik:
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())
Wynik:
Zasadniczo magiczne metody są czymś, co może ułatwić programowanie obiektowe.
Teraz zrozumiemy Co to jest?
- Magiczne metody są wszystkim dla obiektowego języka Python.
- Metody magiczne w języku Python można zdefiniować jako metody specjalne, które mogą dodawać „magię” do klasy.
- Te magiczne słowa zaczynają się i kończą podwójnymi podkreśleniami, na przykład _init_ lub _add_.
Python Magic Methods
Python ma wiele wbudowanych magicznych metod, aby wymienić niektóre z nich:
- __w tym__
- __Nowy__
- __del__
- __abs__
- __Dodaj__
- __pod__
- __mul__
Omówimy niektóre magiczne metody, aby lepiej to zrozumieć.
Teraz weźmy magiczną metodę __add__:
A=5
A+3
Wyjście: 8
To samo można wykonać za pomocą magicznej metody __add__.
A.__add__(5)
Wyjście: 10
Tutaj operator plus służy do dodawania wartości liczbowej do zmiennej numerycznej A. To samo można wykonać za pomocą wbudowanej magicznej metody __add__. Jednak, jak omówiliśmy, magiczne metody nie powinny być wywoływane bezpośrednio, ale wewnętrznie, za pomocą innych metod lub działań.
składniki
Aby być konkretnym, możemy opisać metody magiczne w różnych kategoriach zamiast opisywać elementy.
1. Konstruktor i inicjator obiektów
- Metody magiczne są szeroko stosowane w podstawach programowania w języku Python w budowaniu klas i inicjowaniu.
- Jak już omówiliśmy magiczną metodę __init__. Ta metoda służy do definiowania inicjalizacji obiektu w klasie.
- __init__ nie jest pierwszą metodą wywoływaną do tworzenia obiektów, jednak wywoływana jest pierwsza magiczna metoda __new__, która tworzy nową instancję, a następnie wywołuje metodę magiczną __init__.
Zobaczmy przykład tego samego:
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)
Wynik:
wywoływanie magicznej metody
wywoływanie metody magicznej__init__
Inicjowanie wystąpienia 2 3
Z __new__ można korzystać na wiele różnych sposobów, ale pokazuje to prosty przykład tej magicznej metody.
2. Porównanie Magiczne metody
Python ma wiele magicznych metod zaprojektowanych w celu intuicyjnego porównywania obiektów za pomocą operatorów.
Niektóre są wymienione poniżej:
- __lt __ (self, other): służy do wywoływania przy użyciu operatora <.
- __le __ (self, other): służy do wywoływania przy użyciu operatora <=.
- __eq __ (self, other): służy do wywoływania przy użyciu operatora ==.
- __ne __ (self, other): służy do wywoływania przy użyciu operatora! =.
- __ge __ (self, other): służy do wywoływania przy użyciu operatora> =.
3. Operatory Infix
Python ma typowe wbudowane operatory binarne jako magiczne metody.
Niektóre są wymienione poniżej:
- __add__ (self, other): do dodania
- __sub__ (self, other): do odejmowania
- __mul __ (ja, inny): do mnożenia
Zalety metody Python Magic
Python zapewnia „magiczne metody”, ponieważ naprawdę wykonują magię dla twojego programu.
Największymi zaletami są:
Magiczne metody Pythona zapewniają prosty sposób, aby obiekty zachowywały się jak typy wbudowane, co oznacza, że można uniknąć sprzecznych z intuicją lub niestandardowych sposobów wykonywania podstawowych operatorów. Na przykład
mamy dwa słowniki „dicta” i „dicta”
dicta = (1 : "XYZ")
dictb = (2 : "LMN")
dict1 + dict2
Wynik:
Traceback (ostatnie połączenie ostatnio):
Plik „python”, wiersz 1, w
TypeError: nieobsługiwane typy operandów dla +: „dict” i „dict”
To kończy się błędem typu, ponieważ typ słownika nie obsługuje dodawania. Teraz możemy rozszerzyć klasę słownika i dodać magiczną metodę „__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 otrzymujemy pożądaną wydajność.
(1: „XYZ”, 2: „LMN”)
Tak więc nagle magia wydarzyła się po prostu poprzez dodanie magicznej metody. Błąd zniknął, który otrzymywaliśmy wcześniej.
Wniosek
Metody magiczne to specjalne metody wywoływane pośrednio i identyfikowane za pomocą dunderów lub podwójnych znaków podkreślenia, takich jak __add__. Teraz, aby lepiej wykorzystać klasy Python, trzeba znać przynajmniej magiczną metodę, taką jak __init__, __new__. Magiczne metody operatora porównania dają Pythonowi przewagę, w której instancje obiektów mogą być porównywane zarówno pod względem równości, jak i nierówności. W skrócie magiczną metodą rób magię do programowania w języku Python, zmniejszając złożoność.
Polecane artykuły
To jest przewodnik po Python Magic Method. Tutaj omawiamy wprowadzenie do Python Magic Method, jej składników i zalet, a także kilka przykładów. Możesz także przejrzeć nasze inne sugerowane artykuły, aby dowiedzieć się więcej -
- Palindrom w PHP
- Słowa kluczowe w języku Python
- Python IDE dla Windows
- Podczas gdy pętla w Pythonie
- C ++ Słowa kluczowe