Увод у Питхон Магиц Метход

Методе Питхон Магиц нису неке чаробњачке ствари. Управо их природа ових метода чини магичним. Метода није ништа друго него у основи функција у Питхон класи. Уграђене методе које се не могу директно назвати су "магичне методе". Магичне методе се не могу директно позивати, односно позивају се индиректно као ефекат другог позива. Лако је препознати магичне методе јер су двоструко подвучене једна испред и друга позади. На пример, _адд_.Ове двоструке подвлаке имају одређено име које је узрок. Дакле, _адд_ се назива "дундер адд дундер".

Шта је Питхон Магиц Метход?

  • Питхон је интерпретирано, објектно оријентисано програмирање које вам даје могућност писања процедуралног кода и / или објектно оријентисаног. Као што знамо да стварање објеката поједностављује управљање компликованим структурама података. Уз то, магичне методе олакшавају могућност креирања објектно оријентисаног програмирања.
  • Пре него што се удубите у магичну методу, схватимо зашто су створени на првом месту?
  • Испод је један пример класе један који користи магијску методу, а други је без чаробне методе. У првом се користи __инит__ магијска метода, која се може користити за иницијализацију више варијабли инстанце у једном потезу. Спортска класа је дефинисана тако да узима у обзир две варијабле инстанца, а то су име и спорт.
  • Обе варијабле инстанце се могу дефинисати у једном потезу помоћу магијске методе __инти__. У случају 2 иста ствар се понавља, али овај пут користимо постављену методу за иницијализацију варијабле инстанце. Овде за две променљиве морамо ову методу два пута позвати.

Овде можемо видети магију магијске методе, у једном потезу можемо дефинисати више примерака променљивих.

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

Излаз:

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

Излаз:

У основи, магијске методе су нешто што може олакшати објектно оријентисано програмирање.

Сад да разумемо шта су ово?

  • Магијске методе су све за објектно оријентисани Питхон.
  • Магијске методе Питхон-а могу се дефинисати као посебне методе које могу додати „магију“ у класу.
  • Ове чаробне речи почињу и завршавају се двоструким подвлакама, на пример, _инит_ или _адд_.

Питхон Магиц Метходс

Питхон има много уграђених чаробних метода за именовање, а то су:

  • __у томе__
  • __Нова__
  • __дел__
  • __абс__
  • __додати__
  • __суб__
  • __мул__

Разговараћемо о неким магијским методама да бисмо га боље разумели.

Сада узмимо __адд__ магичну методу:

A=5
A+3

Излаз: 8

Исто се може извести и магијском методом __адд__.

A.__add__(5)

Излаз: 10

Овде се оператор плус користи за додавање нумеричке вредности нумеричкој променљивој А. Исто се може извести помоћу уграђене магичне методе __адд__. Међутим, као што смо расправљали, магичне методе се не би требало звати директно, већ интерно, неким другим методама или поступцима.

Компоненте

Да будемо специфични, магичне методе можемо одвојити у различите категорије уместо да описујемо компоненте.

1. Конструктор и иницијализатор објекта

  • Магичне методе се широко користе у основама програмирања питона у конструкцији класе и иницијализацији.
  • Као што смо разговарали о __инит__ магијској методи. Ова метода се користи за дефинисање иницијализације објекта у класи.
  • __инит__ није прва метода која се позива на стварање предмета, али се позива прва магична метода __нев__ која ствара нову инстанцу, а затим позива __инит__ магијску методу.

Погледајмо пример истог:

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)

Излаз:

позивање магијске методе__нев__

позивање магијске методе__инит__

Иницијализација инстанције 2 3

__нев__ се може користити на најразличитије начине, али то показује једноставан пример ове магичне методе.

2. Упоређивање Магичне методе

Питхон поседује бројне магичне методе које су дизајниране да омогуће интуитивно поређење објеката помоћу оператора.

Неке су наведене у наставку:

  • __лт __ (само, остало): користи се за позивање у поређењу помоћу оператора.
  • __ле __ (само, остало): користи се за позивање на упоређивању користећи <= оператор.
  • __ек __ (само, остало): користи се за позивање на поређењу помоћу оператора ==.
  • __не __ (само, остало): користи се за позивање у поређењу користећи оператор! =.
  • __ге __ (само, остало): користи се за упоређивање помоћу оператора> =.

3. Инфик Оператори

Питхон има типичне уграђене бинарне операторе као магичне методе.

Неке су наведене у наставку:

  • __адд__ (само, остало): за допуну
  • __суб__ (само, остало): за одузимање
  • __мул __ (само, остало): за множење

Предности магичне методе Питхон

Питхон пружа „магичне методе“ јер заиста изводе магије за ваш програм.

Највеће предности су:

Питхонове магичне методе омогућавају једноставан начин да се предмети понашају попут уграђених типова, што значи да се могу избећи контраинтуитивни или нестандардни начини извођења основних оператора. На пример,

имамо два речника 'дикта' и 'дикта'

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

Излаз:

Трацебацк (најновији задњи позив):

Датотека "питхон", ред 1, у

ТипеЕррор: неподржани типови операнда за +: 'дицт' и 'дицт'

Ово се завршава грешком типа, јер врста речника не подржава додавање. Сада можемо проширити класу речника и додати магијску методу „__адд__“:

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

Сада добијамо жељени излаз.
(1: 'КСИЗ', 2: 'ЛМН')

Тако се изненада магија догодила само додавањем магичне методе. Грешка је нестала због које смо били раније.

Закључак

Магичне методе су посебне методе које се индиректно позивају и идентификују са звучницима или двоструким подвлакама попут __адд__. Да бисте боље користили Питхон-ове класе, морате знати барем неку магичну методу попут __инит__, __нев__. Упоредне магичне методе оператора дају питхону предност где се примери објеката могу упоређивати ради једнакости и неједнакости. Укратко, магијска метода учини магију програмирањем питона смањујући сложеност.

Препоручени чланци

Ово је водич о Питхон Магиц Метход. Овде смо расправљали о уводу у Питхон Магиц Метход, компонентама и предностима као и неким примерима. Можете и да прођете кроз друге наше предложене чланке да бисте сазнали више -

  1. Палиндроме у ПХП-у
  2. Питхон Кеивордс
  3. Питхон ИДЕ за Виндовс
  4. Док је Лооп у Питхон-у
  5. Ц ++ Кључне речи

Категорија: