Es sieht einfach aus, aber ich konnte keine Lösung finden.Python Externe Klassen
Ich zeige das Problem unten mit dem einfachsten Beispiel, das ich mir vorstellen konnte.
(Meine Klassen ruhig sind komplexer;))
Datei A.py
import os, sys
import B
from B import *
class _A():
def __init__(self,someVars):
self.someVars = someVars
def run(self):
print self.someVars
someVars = 'jdoe'
B._B(someVars)
Datei B.py mit dem Import nicht
A entsprechenimport A
from A import _A
class _B():
def __init__(self,someVars):
self.someVars = someVars
def run(self):
A._A(self.someVars)
mit import A
-> Rückruf: nicht finden können, _A
Es funktioniert nur, wenn ich -
from A import *
Aber und logisch sind A-Funktionen 2-mal ausgeführt.
Vielen Dank an alle
Da Import A keine unterstrichenen Klassen importiert. Sie rufen 'A._A' anstelle von' _A' auf, wenn Sie 'von A import_A' verwenden und direkt '_A' aufrufen können. Verwenden Sie niemals 'from A import *', immer entweder 'import A' oder' from A import _A'. Du brauchst beides auch nicht, man wird es tun. [Unterklassierte Klassenimporte] (http://stackoverflow.com/questions/551038/private-implementation-class-in-python). [Import vs. vom Import] (http://stackoverflow.com/questions/710551/import-module-or-from-module-import) –