Renombrar puntero de función de Python

Muhammad Maisam Abbas 30 enero 2023
  1. Cambiar el nombre de la función usando su puntero con la función getattr() en Python
  2. Cambiar el nombre de la función usando su puntero con la instrucción import en Python
  3. Cambiar el nombre de la función usando su puntero con la instrucción package.function en Python
  4. Cambiar el nombre de la función usando su puntero con un diccionario de referencia en Python
Renombrar puntero de función de Python

Este tutorial discutirá diferentes métodos para cambiar el nombre de una función usando un puntero en Python.

Cambiar el nombre de la función usando su puntero con la función getattr() en Python

Tenemos un archivo llamado functions.py donde hemos definido dos funciones llamadas square y cube.

Podemos utilizar varios métodos para acceder a estas funciones con algún otro nombre. Existe una noción bien conocida de que todo en Python es un objeto.

Y como todos sabemos, los objetos se llaman por referencia. Aunque Python no admite punteros definidos por el usuario, aún podemos solucionar este problema con los siguientes métodos.

Nuestro primer método consiste en usar la función getattr() en Python. El getattr() es una función integrada que devuelve el valor del atributo nombrado de un objeto.

Se puede utilizar con la función __import__(). El __import__() es otra función incorporada que se usa para importar paquetes, bibliotecas y módulos en nuestro código en Python.

Una vez importada, podemos asignar un nuevo nombre a la función original asignando el valor de retorno de la función getattr() a una nueva variable. El fragmento de código demuestra el funcionamiento de este fenómeno en Python.

pkg = __import__("functions")

func = getattr(pkg, "cube")

print(func(3))

Producción :

27

Importamos el archivo functions.py con la función __import__() y asignamos su valor al objeto pkg.

Luego buscamos la función original cube() dentro del objeto pkg y asignamos su valor a la variable func. Ahora podemos llamar a la función functions.cube con solo la función func().

Al final, imprimimos el cubo de 3 con la func(3).

Cambiar el nombre de la función usando su puntero con la instrucción import en Python

Este método implica el uso de la instrucción import para cambiar el nombre de la función.

La instrucción import se usa para importar paquetes, bibliotecas o módulos en nuestro código. Podemos usar la declaración as con nuestra declaración import para cambiar el nombre de nuestros paquetes, bibliotecas o módulos.

El fragmento de código para cambiar el nombre de nuestros paquetes con las declaraciones import y as se encuentra a continuación.

from functions import square as sq

print(sq(2))

Producción :

4

Importamos nuestra función square() dentro del archivo functions.py como sq.

Ahora, podemos usar la función square() dentro de nuestro archivo actual escribiendo simplemente sq(). Este método es muy conveniente y fácil de entender.

Pero este método falla si queremos usar múltiples nombres para nuestra única función. Los métodos mencionados en las siguientes secciones abordan este problema y brindan una solución que también puede manejar varios nombres para una sola función.

Cambiar el nombre de la función usando su puntero con la instrucción package.function en Python

Nuestra función square() está dentro del archivo functions.py, podemos hacer referencia a esta función importando primero el archivo funcitons.py dentro de nuestro código actual y escribiendo function.square().

Esto sirve como una referencia a la función original. Podemos asignar su valor a cualquier variable en nuestro código y usar esa variable para llamar a la función.

El fragmento de código proporcionado a continuación nos permite comprender cómo funciona este método.

import functions

sq = functions.square

print(sq(3))

Producción :

9

Cambiamos el nombre de nuestra función functions.square() a sq() asignando la referencia de functions.square a sq.

Luego usamos la función renombrada sq() para calcular e imprimir el cuadrado de 3. Este método es muy útil cuando se asignan varios nombres a la misma función.

Tenemos que asignar el valor de funciones.cuadrado a múltiples variables para hacer esto. El siguiente ejemplo de código nos muestra cómo podemos lograr esto.

import functions

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

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

Producción :

9
9
9

Llamamos a la misma función functions.square() con tres nombres diferentes en el mismo archivo de código. Este método funciona muy bien con múltiples nombres para una función.

También se puede utilizar para múltiples funciones. El único problema con este método es que requiere un poco de código y se siente muy redundante.

El método discutido en la siguiente sección aborda este problema.

Cambiar el nombre de la función usando su puntero con un diccionario de referencia en Python

Podemos usar el diccionario de referencias a las funciones originales para asignar múltiples nombres a múltiples funciones originales.

Este método es fácil de implementar. Tenemos que asignar una clave a la referencia original.

Entonces podemos acceder a la referencia a la función original usando el nombre del diccionario con la clave asignada. El siguiente fragmento de código muestra una implementación funcional de este método.

import functions

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

print(c(3))

Producción :

27

Creamos un diccionario que asigna una clave a todas las referencias de las funciones originales. Luego cambiamos el nombre de functions.cube a c usando el diccionario functionsdict y la tecla correspondiente cube.

Al final, usamos la función c() para imprimir el cubo 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

Artículo relacionado - Python Function