Importfehler. Zirkuläre Referenzen

Ich habe so ein Paket

package/
    __init__.py
    subpackage1/
        __init__.py
        moduleA.py
        moduleB.py
        moduleC.py
        moduleD.py
    subpackage2/
       __init__.py
       moduleX.py
       moduleY.py
       moduleZ.py

In moduleB.py importiere ich

from moduleA import bar

In Modul A importiere ich

from moduleB import foo

Ich erhalte ImportError.

ImportError: cannot import name foo

Woran könnte das liegen? Was soll ich tun, um dieses Problem zu vermeiden? und was soll ich schreiben_drin_.py pf package, subpackage1, subpackage2?

_drin_.py von subpackage1

from moduleA import *
from moduleB import *
from moudleC import *
from moudleD import *

_drin_.py von subpackage2

from moduleX import *
from moduleY import *
from moduleZ import *

_drin_.py des Pakets

from subpackage1 import *
from subpackage2 import *

Gibt es ein Problem mit meinem_drin_.py Dateien?

BEARBEITEN: Ich habe Importe geändert

ModulB

from .moduleA import bar

moduleA

from .moduleB import foo

Trotzdem erhalte ich den gleichen Importfehler.

ImportError: cannot import name foo

BEARBEITEN:

ModulB

def Bar():
    def __init__(self):
        self.foo = Foo()
        self.val = 10
        .
        .

moduleA

def Foo():
    def __init__(self):
        self.bar = Bar()
        self.val = 5
        .
        .   

Ich möchte das machen. Und ich bestehe darauf, beide Klassen in unterschiedlichen Dateien zu halten. Wie soll ich importieren?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage