Renommer le pointeur de fonction Python

Muhammad Maisam Abbas 30 janvier 2023
  1. Renommer une fonction à l’aide de son pointeur avec la fonction getattr() en Python
  2. Renommer la fonction à l’aide de son pointeur avec l’instruction import en Python
  3. Renommer la fonction à l’aide de son pointeur avec l’instruction package.function en Python
  4. Renommer la fonction à l’aide de son pointeur avec un dictionnaire de référence en Python
Renommer le pointeur de fonction Python

Ce tutoriel abordera différentes méthodes pour renommer une fonction à l’aide d’un pointeur en Python.

Renommer une fonction à l’aide de son pointeur avec la fonction getattr() en Python

Nous avons un fichier nommé functions.py où nous avons défini deux fonctions nommées square et cube.

Nous pouvons utiliser plusieurs méthodes pour accéder à ces fonctions avec un autre nom. Il existe une notion bien connue selon laquelle tout en Python est un objet.

Et comme nous le savons tous, les objets sont appelés par référence. Même si Python ne prend pas en charge les pointeurs définis par l’utilisateur, nous pouvons toujours contourner ce problème avec les méthodes suivantes.

Notre première méthode consiste à utiliser la fonction getattr() en Python. Le getattr() est une fonction intégrée qui renvoie la valeur de l’attribut nommé d’un objet.

Il peut être utilisé avec la fonction __import__(). Le __import__() est une autre fonction intégrée utilisée pour importer des packages, des bibliothèques et des modules dans notre code en Python.

Une fois importé, nous pouvons alors attribuer un nouveau nom à la fonction d’origine en affectant la valeur de retour de la fonction getattr() à une nouvelle variable. L’extrait de code montre le fonctionnement de ce phénomène en Python.

pkg = __import__("functions")

func = getattr(pkg, "cube")

print(func(3))

Production :

27

Nous avons importé le fichier functions.py avec la fonction __import__() et attribué sa valeur à l’objet pkg.

Nous avons ensuite récupéré la fonction originale cube() dans l’objet pkg et attribué sa valeur à la variable func. Nous pouvons maintenant appeler la fonction functions.cube avec uniquement la fonction func.

Au final, nous avons imprimé le cube de 3 avec le func(3).

Renommer la fonction à l’aide de son pointeur avec l’instruction import en Python

Cette méthode consiste à utiliser l’instruction import pour renommer la fonction.

L’instruction import est utilisée pour importer des packages, des bibliothèques ou des modules dans notre code. Nous pouvons utiliser l’instruction as avec notre instruction import pour renommer nos packages, bibliothèques ou modules.

L’extrait de code pour renommer nos packages avec les instructions import et as est ci-dessous.

from functions import square as sq

print(sq(2))

Production :

4

Nous avons importé notre fonction square() dans le fichier functions.py en tant que sq.

Maintenant, nous pouvons utiliser la fonction square() dans notre fichier actuel en écrivant simplement sq(). Cette méthode est très pratique et facile à comprendre.

Mais, cette méthode échoue si nous voulons utiliser plusieurs noms pour notre seule fonction. Les méthodes mentionnées dans les sections suivantes résolvent ce problème et fournissent une solution qui peut également gérer plusieurs noms pour une seule fonction.

Renommer la fonction à l’aide de son pointeur avec l’instruction package.function en Python

Notre fonction square() se trouve dans le fichier functions.py, nous pouvons référencer cette fonction en important d’abord le fichier funcitons.py dans notre code actuel et en écrivant function.square().

Cela sert de référence à la fonction d’origine. Nous pouvons attribuer sa valeur à n’importe quelle variable de notre code et utiliser cette variable pour appeler la fonction.

L’extrait de code fourni ci-dessous nous permet de comprendre le fonctionnement de cette méthode.

import functions

sq = functions.square

print(sq(3))

Production :

9

Nous avons renommé notre fonction functions.square() en sq() en affectant la référence de la functions.square à sq.

Nous avons ensuite utilisé la fonction renommée sq() pour calculer et imprimer le carré de 3. Cette méthode est très utile lors de l’attribution de plusieurs noms à la même fonction.

Nous devons attribuer la valeur de functions.square à plusieurs variables pour ce faire. L’exemple de code suivant nous montre comment nous pouvons y parvenir.

import functions

sq = functions.square
sq1 = functions.square
sq2 = functions.square

print(sq(3))
print(sq1(3))
print(sq2(3))

Production :

9
9
9

Nous avons appelé la même fonction functions.square() avec trois noms différents dans le même fichier de code. Cette méthode fonctionne très bien avec plusieurs noms pour une fonction.

Il peut également être utilisé pour plusieurs fonctions. Le seul problème avec cette méthode est qu’elle nécessite un peu de code et qu’elle semble très redondante.

La méthode décrite dans la section suivante résout ce problème.

Renommer la fonction à l’aide de son pointeur avec un dictionnaire de référence en Python

Nous pouvons utiliser le dictionnaire des références aux fonctions d’origine pour attribuer plusieurs noms à plusieurs fonctions d’origine.

Cette méthode est simple à mettre en œuvre. Nous devons attribuer une clé à la référence d’origine.

Nous pouvons alors accéder à la référence à la fonction d’origine en utilisant le nom du dictionnaire avec la clé attribuée. L’extrait de code suivant montre une implémentation fonctionnelle de cette méthode.

import functions

functionsdict = {"square": functions.square, "cube": functions.cube}
c = functionsdict["cube"]

print(c(3))

Production :

27

Nous avons créé un dictionnaire qui attribue une clé à toutes les références des fonctions d’origine. Nous avons ensuite renommé le functions.cube en c en utilisant le dictionnaire functionsdict et la clé correspondante cube.

Au final, nous avons utilisé la fonction c() pour imprimer le cube de 3.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Article connexe - Python Function