Importieren alle Funktionen aus einer Datei in Python

Muhammad Maisam Abbas 30 Januar 2023
  1. Importieren alle Funktionen aus einer Datei mit der Anweisung import * in Python
  2. Grund, den import *-Ansatz nicht zu verwenden
Importieren alle Funktionen aus einer Datei in Python

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.

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 Import