Introduction à la méthode magique Python

En Python Magic, les méthodes ne sont pas des trucs magiques. C'est juste la nature de ces méthodes qui les rend magiques. Une méthode n'est rien d'autre que la fonction de la classe Python. Les méthodes intégrées qui ne peuvent pas être appelées directement sont des «méthodes magiques». Les méthodes magiques ne peuvent pas être invoquées directement, c'est-à-dire qu'elles sont invoquées indirectement comme effet d'un autre appel. Il est facile d'identifier les méthodes magiques car elles ont été soulignées deux fois l'une à l'avant et l'autre à l'arrière. Par exemple, _add_. Ces doubles traits de soulignement ont un nom spécifique qui est bailleurs de fonds. Ainsi, _add_ est appelé «dunder add dunder».

Qu'est-ce que la méthode magique Python?

  • Python est une programmation interprétée et orientée objet qui vous donne la possibilité d'écrire du code procédural et / ou orienté objet. Comme nous le savons, la création d'objets simplifie la gestion des structures de données complexes. En plus de cela, les méthodes magiques facilitent la création de programmation orientée objet.
  • Avant de plonger dans ce qu'est une méthode magique, comprenons pourquoi en premier lieu elles sont créées?
  • Ci-dessous, un exemple de classe 1 utilisant une méthode magique et l'autre sans la méthode magique. Dans la première, la méthode magique __init__ est utilisée, qui peut être utilisée pour initialiser plus d'une variable d'instance en une seule fois. Une classe Sports est définie comme prenant en compte deux variables d'instance, à savoir le nom et le sport.
  • Les deux variables d'instance peuvent être définies en une seule fois en utilisant la méthode magique __inti__. Dans le cas 2, la même chose se répète, mais cette fois, nous utilisons une méthode set pour initialiser la variable d'instance. Ici pour 2 variables, nous devons appeler cette méthode deux fois.

Ici, nous pouvons voir la magie de la méthode magique, en une seule fois, nous pouvons définir plus d'une instance variable.

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

Production:

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

Production:

Donc, fondamentalement, les méthodes magiques peuvent faciliter la programmation orientée objet.

Maintenant, comprenons ce que sont ceux-ci?

  • Les méthodes magiques sont tout pour Python orienté objet.
  • Les méthodes magiques Python peuvent être définies comme les méthodes spéciales qui peuvent ajouter de la «magie» à une classe.
  • Ces mots magiques commencent et se terminent par des doubles traits de soulignement, par exemple _init_ ou _add_.

Méthodes magiques Python

Python possède de nombreuses méthodes magiques intégrées pour en nommer certaines:

  • __init__
  • __Nouveau__
  • __del__
  • __abdos__
  • __ajouter__
  • __sous__
  • __mul__

Nous discuterons de certaines des méthodes magiques pour mieux le comprendre.

Prenons maintenant la méthode magique __add__:

A=5
A+3

Sortie: 8

La même chose peut être effectuée avec la méthode magique __add__.

A.__add__(5)

Sortie: 10

Ici, l'opérateur plus est utilisé pour ajouter une valeur numérique à la variable numérique A. La même chose peut être effectuée en utilisant la méthode magique __add__ intégrée. Cependant, comme nous l'avons vu, les méthodes magiques ne sont pas censées être appelées directement, mais en interne, par le biais d'autres méthodes ou actions.

Composants

Pour être précis, nous pouvons séparer les méthodes magiques dans différentes catégories au lieu de décrire les composants.

1. Constructeur et initialiseur d'objets

  • Les méthodes magiques sont largement utilisées dans les bases de la programmation python dans la construction de classes et l'initialisation.
  • Comme nous l'avons vu, la méthode magique __init__. Cette méthode a été utilisée pour définir l'initialisation d'un objet dans la classe.
  • __init__ n'est pas la première méthode à être invoquée pour la création d'objets, cependant, la première méthode magique __new__ est invoquée, ce qui crée une nouvelle instance et appelle ensuite la méthode magique __init__.

Voyons l'exemple de la même:

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)

Production:

appeler la méthode magique__nouveau__

appeler la méthode magique__init__

Initialisation de l'instance 2 3

__new__ peut être utilisé de différentes manières, mais cela montre un exemple simple de cette méthode magique.

2. Comparaison des méthodes magiques

Python dispose d'un certain nombre de méthodes magiques conçues pour effectuer des comparaisons intuitives entre les objets à l'aide d'opérateurs.

Certains sont énumérés ci-dessous:

  • __lt __ (auto, autre): est utilisé pour être appelé lors de la comparaison à l'aide de l'opérateur <.
  • __le __ (auto, autre): est utilisé pour être appelé lors de la comparaison en utilisant l'opérateur <=.
  • __eq __ (self, other): est utilisé pour être appelé lors de la comparaison en utilisant l'opérateur ==.
  • __ne __ (auto, autre): est utilisé pour être appelé lors de la comparaison à l'aide de l'opérateur! =.
  • __ge __ (auto, autre): est utilisé pour être appelé lors de la comparaison en utilisant l'opérateur = =.

3. Opérateurs Infix

Python a des opérateurs binaires intégrés typiques comme méthodes magiques.

Certains sont énumérés ci-dessous:

  • __add__ (auto, autre): pour addition
  • __sub__ (soi, autre): pour la soustraction
  • __mul __ (auto, autre): pour multiplication

Avantages de la méthode magique Python

Python fournit des «méthodes magiques» car elles effectuent vraiment de la magie pour votre programme.

Les plus grands avantages sont:

Les méthodes magiques de Python fournissent un moyen simple de faire en sorte que les objets se comportent comme des types intégrés, ce qui signifie que l'on peut éviter des façons contre-intuitives ou non standard d'effectuer des opérateurs de base. Par exemple,

nous avons deux dictionnaires 'dicta' et 'dicta'

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

Production:

Traceback (dernier appel le plus récent):

Fichier «python», ligne 1, dans

TypeError: type (s) d'opérande non pris en charge pour +: 'dict' et 'dict'

Maintenant, cela se termine par une erreur de type car le type de dictionnaire ne prend pas en charge l'ajout. Maintenant, nous pouvons étendre la classe de dictionnaire et ajouter la méthode magique «__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)

Maintenant, nous obtenons la sortie souhaitée.
(1: 'XYZ', 2: 'LMN')

Ainsi, tout à coup, la magie s'est produite simplement en ajoutant une méthode magique. L'erreur a disparu que nous obtenions plus tôt.

Conclusion

Les méthodes magiques sont des méthodes spéciales qui sont invoquées indirectement et sont identifiées par des dunders ou des doubles soulignés comme __add__. Maintenant, pour mieux utiliser les classes Python, il faut connaître au moins une méthode magique comme __init__, __new__. Les méthodes magiques d'opérateur de comparaison donnent à python un avantage où les instances d'objets peuvent être comparées pour l'égalité ainsi que l'inégalité. En résumé, faites de la magie avec la programmation python en réduisant la complexité.

Articles recommandés

Ceci est un guide sur la méthode magique Python. Nous discutons ici de l'introduction à Python Magic Method, de ses composants et avantages ainsi que de quelques exemples. Vous pouvez également consulter nos autres articles suggérés pour en savoir plus–

  1. Palindrome en PHP
  2. Mots-clés Python
  3. IDE Python pour Windows
  4. Boucle en Python
  5. Mots-clés C ++