Importieren alle Funktionen aus einer Datei in Python
-
Importieren alle Funktionen aus einer Datei mit der Anweisung
import *
in Python -
Grund, den
import *
-Ansatz nicht zu verwenden
In diesem Tutorial wird die Methode zum Importieren aller Funktionen aus einer Datei in Python erläutert.
Importieren alle Funktionen aus einer Datei mit der Anweisung import *
in Python
Die import
-Anweisung wird verwendet, um Pakete, Module und Bibliotheken in unseren Python-Code zu importieren.
Wir können import *
verwenden, wenn wir alles aus einer Datei in unseren Code importieren möchten. Wir haben eine Datei namens functions.py
, die zwei Funktionen square()
und cube()
enthält.
Wir können from functions import *
schreiben, um beide Funktionen in unseren Code zu importieren. Wir können dann sowohl die Funktionen square()
als auch cube()
in unserem Code verwenden.
Das folgende Code-Snippet zeigt eine funktionierende Implementierung dieses Ansatzes.
from functions import *
print(cube(3))
Ausgabe:
27
Wir haben alle Funktionen in der Datei functions.py
in unseren Code mit der Anweisung import *
in Python importiert.
Wir haben dann die Funktion cube()
in der Datei functions.py
aufgerufen und den Würfel von 3
gedruckt. Obwohl diese Methode funktioniert, ist es nicht ratsam, sie zu verwenden.
Grund, den import *
-Ansatz nicht zu verwenden
Dieser Ansatz verwendet eine implizite import
-Anweisung, wohingegen wir in Python immer dazu geraten werden, explizite import
-Anweisungen zu verwenden.
Gemäß dem Zen von Python ist Explizit besser als implizit
. Für diese Aussage gibt es zwei Hauptgründe.
Der erste Grund ist, dass es sehr schwer zu verstehen ist, welche Funktion aus welcher Datei stammt, wenn die Größe des Projekts zunimmt, und wir am Ende Funktionen aus mehreren Dateien importieren. Es ist besonders schwierig für jemand anderen, unseren Code zu lesen und vollständig zu verstehen, was passiert.
Es macht unseren Code sehr schwer zu debuggen und zu warten. Dieses Problem wird im folgenden Codeausschnitt hervorgehoben.
from functions import *
from functions1 import *
from functions2 import *
print(square(2))
Ausgabe:
4
Im obigen Code-Snippet ist es unmöglich zu wissen, wo die ursprüngliche square()
-Funktion definiert ist, indem man sich nur den Code ansieht. Um die Ursprünge der Funktion square()
vollständig zu verstehen, müssen wir alle Dateien manuell durchsuchen.
Der zweite Hauptgrund ist, dass, wenn wir zwei Funktionen mit demselben Namen in mehreren Dateien haben, der Interpreter die neueste import
-Anweisung verwendet. Dieses Phänomen wird im folgenden Codeausschnitt veranschaulicht.
from functions2 import *
from functions import *
print(hello())
print(hello())
print(hello())
Ausgabe:
hello from functions
hello from functions2
hello from functions2
Die beiden Dateien functions.py
und functions2.py
enthalten beide eine hello()
-Funktion.
In der ersten Ausgabezeile haben wir die Datei functions.py
importiert, und daher wird die Funktion hello()
in dieser Datei ausgeführt. In der zweiten und dritten Ausgabezeile haben wir auch die Datei functions2.py
importiert, die eine hello()
-Funktion enthält.
In den letzten beiden Ausgabezeilen wird also die neue Funktion hello()
ausgeführt.
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