Benennen den Python-Funktionszeiger um

Muhammad Maisam Abbas 30 Januar 2023
  1. Umbenennen einer Funktion mit Hilfe ihres Zeigers mit der Funktion getattr() in Python
  2. Umbenennen einer Funktion mit Hilfe ihres Zeigers mit der import-Anweisung in Python
  3. Umbenennen einer Funktion über ihren Zeiger mit der Anweisung package.function in Python
  4. Umbenennen einer Funktion anhand ihres Zeigers mit einem Referenzwörterbuch in Python
Benennen den Python-Funktionszeiger um

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.

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

Verwandter Artikel - Python Function