828 Stimmen

Wie rufe ich eine Funktion aus einer anderen .py-Datei auf?

file.py enthält eine Funktion namens function. Wie importiere ich sie?

from file.py import function(a,b)

Das obige führt zu einem Fehler:

ImportError: Kein Modul namens 'file.py'; Datei ist kein Paket

854voto

Games Brainiac Punkte 75966

Zuerst, importiere function aus file.py:

from file import function

Rufe die Funktion später mit folgendem Code auf:

function(a, b)

Beachte, dass file eines der Kernmodule von Python ist, daher empfehle ich, den Dateinamen von file.py in etwas anderes zu ändern.

Beachte auch, dass wenn du Funktionen aus a.py in eine Datei namens b.py importieren möchtest, musst du sicherstellen, dass a.py und b.py im selben Verzeichnis sind.

311voto

Salvador Dali Punkte 197375

Schreiben Sie beim Importieren kein .py.

Lassen Sie file_a.py einige Funktionen darin enthalten:

def f():
  return 1

def g():
  return 2

Um diese Funktionen in file_z.py zu importieren, tun Sie dies:

from file_a import f, g

115voto

abanmitra Punkte 1120

Wenn sich Ihre Datei in einer anderen Paketstruktur befindet und Sie sie aus einem anderen Paket aufrufen möchten, können Sie dies auf diese Weise tun:

Angenommen, Sie haben folgende Paketstruktur in Ihrem Python-Projekt:

Python-Paket- und Dateistruktur

in - com.my.func.DifferentFunction Python-Datei haben Sie einige Funktionen, wie:

def add(arg1, arg2):
    return arg1 + arg2

def sub(arg1, arg2) :
    return arg1 - arg2

def mul(arg1, arg2) :
    return arg1 * arg2

Und wenn Sie verschiedene Funktionen aus der Datei Example3.py aufrufen möchten, können Sie dies folgendermaßen tun:

Definieren Sie die Importanweisung in der Datei Example3.py, um alle Funktionen zu importieren

from com.my.func.DifferentFunction import *

oder definieren Sie jeden Funktionsnamen, den Sie importieren möchten

from com.my.func.DifferentFunction import add, sub, mul

Dann können Sie in der Datei Example3.py die Funktion zur Ausführung aufrufen:

num1 = 20
num2 = 10

print("\n add : ", add(num1,num2))
print("\n sub : ", sub(num1,num2))
print("\n mul : ", mul(num1,num2))

Ausgabe:

 add :  30

 sub :  10

 mul :  200

101voto

Pulkit Bansal Punkte 1303

Methode 1. Importieren Sie die spezifische(n) Funktion(en), die Sie aus der Datei.py möchten:

from file import function

Methode 2. Importieren Sie die gesamte Datei:

import file as fl

Dann, um eine Funktion innerhalb der Datei.py aufzurufen, verwenden Sie:

fl.function(a, b)

53voto

Juan Ossa Punkte 1093

Sie können die Funktion auch aus einem anderen Verzeichnis heraus aufrufen, falls Sie die Funktion nicht im selben Verzeichnis haben wollen oder können, in dem Sie arbeiten. Sie können dies auf zwei Arten tun (vielleicht gibt es mehr Alternativen, aber diese haben für mich funktioniert).

Alternative 1 Vorübergehend das Arbeitsverzeichnis ändern

import os

os.chdir("**Hier das Verzeichnis angeben, in dem sich die Datei mit Ihrer Funktion befindet**")

from file import function

os.chdir("**Hier das Verzeichnis angeben, in dem Sie gearbeitet haben**")

Alternative 2 Das Verzeichnis, in dem sich Ihre Funktion befindet, zu sys.path hinzufügen

import sys

sys.path.append("**Hier das Verzeichnis angeben, in dem sich die Datei mit Ihrer Funktion befindet**")

from file import function

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X