Hallo!
habe 2 Files main.py und Ccc.py
file "main.py"
/----------------------------------------------------------------------\
from Ccc import Ccc
def fff(): return 111
c = Ccc()
c.yyy()
\----------------------------------------------------------------------/
file "Ccc.py"
/----------------------------------------------------------------------\
# from main import fff
class Ccc:
def yyy(self):
print("do Ccc.yyy, fff=", fff)
\----------------------------------------------------------------------/
Der Import von "fff" verursacht, für mich unerklärlich immer die Fehlermeldung "ImportError:cannot import name Ccc"
Bitte um Hife
Module einbauen
-
- User
- Beiträge: 9
- Registriert: Sonntag 15. Februar 2009, 17:48
Die beiden Files sind im selben Verzeichnis abgespeichert. oder meinst du was anderes?
Die Importe sind zirkulär deswegen gehts nicht. Wenn Ccc.py so aussieht gehts:
Allerdings ist dass trotzdem unschön, strukturier dass am besten um.
Code: Alles auswählen
class Ccc(object):
def yyy(self):
print 'do Ccc.yyy, fff="", fff'
from main import fff
-
- User
- Beiträge: 996
- Registriert: Mittwoch 9. Januar 2008, 13:48
Ich denke mal, dass du in dem einem Modul das andere importierst, aber im anderen das eine - du machst Cross-Importing, das tut natürlich nicht.
1. Traceback posten
2. Ist so eine Struktur sehr unsauber.
3. Die Module wollen sich gegenseitig importieren. Das geht so nicht. Du kannst nicht einfach einen Namen aus einem Modul holen, ohne das das Modul interpretiert wird, und dann versucht es wieder main zu importieren, welches ja grade importiert werden sollte.
2. Ist so eine Struktur sehr unsauber.
3. Die Module wollen sich gegenseitig importieren. Das geht so nicht. Du kannst nicht einfach einen Namen aus einem Modul holen, ohne das das Modul interpretiert wird, und dann versucht es wieder main zu importieren, welches ja grade importiert werden sollte.