Benennen den Python-Funktionszeiger um
-
Umbenennen einer Funktion mit Hilfe ihres Zeigers mit der Funktion
getattr()
in Python -
Umbenennen einer Funktion mit Hilfe ihres Zeigers mit der
import
-Anweisung in Python -
Umbenennen einer Funktion über ihren Zeiger mit der Anweisung
package.function
in Python - Umbenennen einer Funktion anhand ihres Zeigers mit einem Referenzwörterbuch in Python
In diesem Tutorial werden verschiedene Methoden zum Umbenennen einer Funktion mit einem Zeiger in Python erläutert.
Umbenennen einer Funktion mit Hilfe ihres Zeigers mit der Funktion getattr()
in Python
Wir haben eine Datei namens functions.py
, in der wir zwei Funktionen namens square
und cube
definiert haben.
Wir können verschiedene Methoden verwenden, um auf diese Funktionen mit einem anderen Namen zuzugreifen. Es gibt eine bekannte Vorstellung, dass alles in Python ein Objekt ist.
Und wie wir alle wissen, werden Objekte per Referenz aufgerufen. Obwohl Python keine Unterstützung für benutzerdefinierte Zeiger bietet, können wir dieses Problem dennoch mit den folgenden Methoden umgehen.
Unsere erste Methode beinhaltet die Verwendung der Funktion getattr()
in Python. getattr()
ist eine eingebaute Funktion, die den Wert des benannten Attributs eines Objekts zurückgibt.
Es kann mit der Funktion __import__()
verwendet werden. __import__()
ist eine weitere integrierte Funktion, die zum Importieren von Paketen, Bibliotheken und Modulen in unseren Code in Python verwendet wird.
Nach dem Import können wir der ursprünglichen Funktion einen neuen Namen zuweisen, indem wir den Rückgabewert der Funktion getattr()
einer neuen Variablen zuweisen. Das Code-Snippet demonstriert die Funktionsweise dieses Phänomens in Python.
pkg = __import__("functions")
func = getattr(pkg, "cube")
print(func(3))
Ausgabe:
27
Wir haben die Datei functions.py
mit der Funktion __import__()
importiert und deren Wert dem pkg
-Objekt zugewiesen.
Wir haben dann die ursprüngliche cube()
-Funktion innerhalb des pkg
-Objekts abgerufen und ihren Wert der func
-Variablen zugewiesen. Wir können jetzt die Funktion functions.cube
nur mit der Funktion func()
aufrufen.
Am Ende haben wir mit func(3)
den 3er-Würfel gedruckt.
Umbenennen einer Funktion mit Hilfe ihres Zeigers mit der import
-Anweisung in Python
Bei dieser Methode wird die Funktion mit der Anweisung import
umbenannt.
Die import
-Anweisung wird verwendet, um Pakete, Bibliotheken oder Module in unseren Code zu importieren. Wir können die as
-Anweisung mit unserer import
-Anweisung verwenden, um unsere Pakete, Bibliotheken oder Module umzubenennen.
Das Code-Snippet zum Umbenennen unserer Pakete mit den Anweisungen import
und as
ist unten.
from functions import square as sq
print(sq(2))
Ausgabe:
4
Wir haben unsere Funktion square()
in die Datei functions.py
als sq
importiert.
Jetzt können wir die Funktion square()
in unserer aktuellen Datei verwenden, indem wir einfach sq()
schreiben. Diese Methode ist sehr bequem und leicht verständlich.
Diese Methode schlägt jedoch fehl, wenn wir mehrere Namen für unsere eine Funktion verwenden möchten. Die in den nächsten Abschnitten erwähnten Methoden adressieren dieses Problem und bieten eine Lösung, die auch mehrere Namen für nur eine einzige Funktion verarbeiten kann.
Umbenennen einer Funktion über ihren Zeiger mit der Anweisung package.function
in Python
Unsere Funktion square()
befindet sich in der Datei functions.py
, wir können auf diese Funktion verweisen, indem wir zuerst die Datei funcitons.py
in unseren aktuellen Code importieren und function.square()
schreiben.
Dies dient als Referenz auf die ursprüngliche Funktion. Wir können ihren Wert jeder Variablen in unserem Code zuweisen und diese Variable verwenden, um die Funktion aufzurufen.
Das unten bereitgestellte Code-Snippet ermöglicht uns zu verstehen, wie diese Methode funktioniert.
import functions
sq = functions.square
print(sq(3))
Ausgabe:
9
Wir haben unsere Funktion functions.square()
in sq()
umbenannt, indem wir die Referenz der functions.square
auf sq
zugewiesen haben.
Wir haben dann die umbenannte Funktion sq()
verwendet, um das Quadrat von 3
zu berechnen und auszudrucken. Diese Methode ist sehr hilfreich, wenn Sie derselben Funktion mehrere Namen zuweisen.
Dazu müssen wir den Wert von functions.square
mehreren Variablen zuweisen. Das folgende Codebeispiel zeigt uns, wie wir das erreichen können.
import functions
sq = functions.square
sq1 = functions.square
sq2 = functions.square
print(sq(3))
print(sq1(3))
print(sq2(3))
Ausgabe:
9
9
9
Wir haben dieselbe Funktion functions.square()
mit drei verschiedenen Namen in derselben Codedatei aufgerufen. Diese Methode funktioniert hervorragend mit mehreren Namen für eine Funktion.
Es kann auch für mehrere Funktionen verwendet werden. Das einzige Problem bei dieser Methode ist, dass sie ein wenig codeintensiv ist und sich sehr überflüssig anfühlt.
Die im nächsten Abschnitt beschriebene Methode befasst sich mit diesem Problem.
Umbenennen einer Funktion anhand ihres Zeigers mit einem Referenzwörterbuch in Python
Wir können das Dictionary der Verweise auf die ursprünglichen Funktionen verwenden, um mehreren Originalfunktionen mehrere Namen zuzuweisen.
Diese Methode ist einfach zu implementieren. Wir müssen der ursprünglichen Referenz einen Schlüssel zuweisen.
Wir können dann auf die Referenz auf die ursprüngliche Funktion zugreifen, indem wir den Wörterbuchnamen mit dem zugewiesenen Schlüssel verwenden. Der folgende Codeausschnitt zeigt eine funktionierende Implementierung dieser Methode.
import functions
functionsdict = {"square": functions.square, "cube": functions.cube}
c = functionsdict["cube"]
print(c(3))
Ausgabe:
27
Wir haben ein Dictionary erstellt, das allen Referenzen der ursprünglichen Funktionen einen Schlüssel zuordnet. Anschliessend haben wir die functions.cube
mit dem Dictionary functionsdict
und dem dazugehörigen Schlüssel cube
in c
umbenannt.
Am Ende haben wir die Funktion c()
verwendet, um den Würfel von 3
zu drucken.
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