Introduzione al metodo Python Magic

In Python Magic i metodi non sono alcune cose magiche. È proprio la natura di questi metodi che li rende magici. Un metodo non è altro che fondamentalmente la funzione nella classe Python. I metodi integrati che non possono essere chiamati direttamente sono "metodi magici". I metodi magici non possono essere invocati direttamente, ovvero vengono indirizzati indirettamente come effetto di un'altra chiamata. È facile identificare i metodi magici perché hanno il doppio sottolineato uno davanti e l'altro dietro. Ad esempio, _add_. Questi doppi trattini bassi hanno un nome specifico che è finanziatori. Quindi _add_ viene chiamato 'dunder add dunder'.

Che cos'è il metodo Python Magic?

  • Python è una programmazione interpretata e orientata agli oggetti che ti dà la possibilità di scrivere codice procedurale e / o orientato agli oggetti. Come sappiamo, la creazione di oggetti semplifica la gestione di strutture dati complesse. Inoltre, i metodi magici facilitano la capacità di creare una programmazione orientata agli oggetti.
  • Prima di immergerci in un metodo magico, capiamo perché in primo luogo sono stati creati?
  • Di seguito è riportato un esempio di classe uno che utilizza un metodo magico e l'altro è privo del metodo magico. Nel primo viene utilizzato il metodo magico __init__, che può essere utilizzato per inizializzare più di una variabile di istanza in una volta sola. Una classe Sport è definita tenendo conto di due variabili di istanza che sono nome e sport.
  • Entrambe le variabili di istanza possono essere definite in una volta sola usando il metodo magico __inti__. Nel caso 2 si ripete la stessa cosa ma questa volta stiamo usando un metodo set per inizializzare la variabile di istanza. Qui per 2 variabili, dobbiamo chiamare questo metodo due volte.

Qui possiamo vedere la magia del metodo magico, in una volta possiamo definire più di un'istanza 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())

Produzione:

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

Produzione:

Quindi, in sostanza, i metodi magici sono qualcosa che può facilitare la programmazione orientata agli oggetti.

Ora capiamo cosa sono questi?

  • I metodi magici sono tutto per Python orientato agli oggetti.
  • I metodi di magia Python possono essere definiti come metodi speciali che possono aggiungere "magia" a una classe.
  • Queste parole magiche iniziano e finiscono con un doppio trattino basso, ad esempio _init_ o _add_.

Metodi magici di Python

Python ha molti metodi magici integrati per nominarne alcuni:

  • __dentro__
  • __nuovo__
  • __del__
  • __addominali__
  • __Inserisci__
  • __sub__
  • __mul__

Discuteremo alcuni dei metodi magici per capirlo meglio.

Ora prendiamo il metodo magico __add__:

A=5
A+3

Uscita: 8

Lo stesso può essere eseguito con il metodo magico __add__.

A.__add__(5)

Uscita: 10

Qui l'operatore plus viene utilizzato per aggiungere un valore numerico alla variabile numerica A. Lo stesso può essere eseguito utilizzando il metodo magico __add__ incorporato. Tuttavia, come abbiamo discusso, i metodi magici non dovrebbero essere chiamati direttamente, ma internamente, attraverso altri metodi o azioni.

componenti

Per essere precisi, possiamo separare i metodi magici in diverse categorie invece di descrivere i componenti.

1. Costruttore e inizializzatore di oggetti

  • I metodi magici sono ampiamente utilizzati nelle basi della programmazione in pitone nella costruzione di classi e nell'inizializzazione.
  • Come abbiamo discusso del metodo magico __init__. Questo metodo è stato utilizzato per definire l'inizializzazione di un oggetto nella classe.
  • __init__ non è il primo metodo da invocare per la creazione di oggetti, tuttavia viene invocato il primo metodo magico __new__ che crea una nuova istanza e quindi chiama il metodo magico __init__.

Vediamo l'esempio dello stesso:

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)

Produzione:

chiamando il metodo magico__new__

chiamando il metodo magico__init__

Inizializzazione dell'istanza 2 3

__new__ può essere usato in molti modi diversi, ma questo mostra un semplice esempio di questo metodo magico.

2. Metodi di comparazione magica

Python ha una serie di metodi magici progettati per fare confronti intuitivi tra oggetti con l'uso di operatori.

Alcuni sono elencati di seguito:

  • __lt __ (self, altro): viene usato per essere chiamato al confronto usando <operatore.
  • __le __ (self, altro): viene usato per essere chiamato al confronto usando l'operatore <=.
  • __eq __ (sé, altro): è usato per essere chiamato al confronto usando l'operatore ==.
  • __ne __ (sé, altro): viene usato per essere chiamato al confronto usando! = operatore.
  • __ge __ (self, altro): viene usato per essere chiamato al confronto usando> = operatore.

3. Operatori Infix

Python ha i tipici operatori binari integrati come metodi magici.

Alcuni sono elencati di seguito:

  • __add__ (sé, altro): per aggiunta
  • __sub__ (sé, altro): per sottrazione
  • __mul __ (sé, altro): per moltiplicazione

Vantaggi del metodo Python Magic

Python fornisce "metodi magici" perché eseguono davvero la magia per il tuo programma.

I maggiori vantaggi sono:

I metodi magici di Python forniscono un modo semplice per far comportare gli oggetti come tipi incorporati, il che significa che si possono evitare modi non intuitivi o non standard di eseguire operatori di base. Ad esempio,

abbiamo due dizionari 'dicta' e 'dicta'

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

Produzione:

Traceback (ultima chiamata più recente):

File "python", riga 1, in

TypeError: tipi di operando non supportati per +: 'dict' e 'dict'

Ora, questo finisce con un errore di tipo perché il tipo di dizionario non supporta l'aggiunta. Ora, possiamo estendere la classe del dizionario e aggiungere il metodo magico "__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)

Ora stiamo ottenendo l'output desiderato.
(1: 'XYZ', 2: 'LMN')

Quindi, improvvisamente la magia è avvenuta semplicemente aggiungendo un metodo magico. L'errore svanì che stavamo ottenendo prima.

Conclusione

I metodi magici sono metodi speciali che vengono invocati indirettamente e sono identificati con dunders o double underscore come __add__. Ora per usare meglio le classi Python è necessario conoscere almeno alcuni metodi magici come __init__, __new__. I metodi magici dell'operatore di confronto offrono a Python un vantaggio in cui le istanze di oggetti possono essere confrontate per uguaglianza e disuguaglianza. In poche parole, il metodo magico fa magia con la programmazione pitone riducendo la complessità.

Articoli consigliati

Questa è una guida sul metodo Python Magic. Qui discutiamo l'introduzione al metodo Python Magic, i suoi componenti e vantaggi, nonché alcuni esempi. Puoi anche consultare i nostri altri articoli suggeriti per saperne di più–

  1. Palindrome in PHP
  2. Parole chiave di Python
  3. Python IDE per Windows
  4. Mentre Loop in Python
  5. Parole chiave C ++

Categoria: