2017-12-23 3 views
-2

Ich habe drei Dateien im selben Verzeichnis, nämlich main.py, Newtester.py und fileUtility.py. In Newtester.py gibt es eine Klasse namens Function. In main.py gibt es die folgenden Codes:Python-Importklasse aus anderen Dateien

from file.py import * 
... 
def main(): 
    ... 
    funcs = parseFuncSpec(funcInputFile) 

parseFuncSpec in fileUtilities.py wie folgt definiert ist:

some code to import Newtester.py 
def parseFuncSpec(fName): 
    curFunc = function(funcName, numTest, [], score) 

Unabhängig davon, was ich in Import Newtester.py setzen, habe ich immer einen Fehler "Function" (die in der Datei "Newtester.py" definierte Klasse) ist nicht definiert. Nach Python: How to import other Python files, ich habe

versucht
import Newtester 
__import__("Newtester") 
exec("Newtester.py") 
exec("Newtester") 
import importlib 
importlib.__import__("Newtester") 
os.system("Newtester.py") 

Aber keiner von ihnen schien zu funktionieren. Jeder Rat wird geschätzt. Siehe https://github.com/r2dong/unitTesting, wenn Sie die vollständigen Dateien sehen möchten.

+0

@Gahan wovon redest du? Das ist nicht veraltet. Das ist der richtige Weg, um eine Klasse zu definieren. –

Antwort

1

Es ist, weil Sie es nicht richtig gut

verwenden, wenn Sie Import-Anweisung verwenden, wie unten nur Newstester Datei

importiert
import Newtester 

daher statt mit parseFuncSpec() direkt haben Sie es als Newtester.parseFuncSpec()

verwenden

oder um parseFuncSpec() direkt zu verwenden, müssen Sie unter Importanweisung verwenden:

from Newtester import parseFuncSpec 
Verwandte Themen