Ik heb een python-applicatie die grofweg de volgende structuur heeft:
Het daadwerkelijke programma is natuurlijk uitgebreider, maar dit is het basis-idee. Het probleem waar ik tegenaan loop is dat ik vanuit class b blijkbaar niet naar objecten die ik in core heb aangemaakt kan verwijzen. Ik krijg de fout dat "core" geen global name is. Dit is op zich logisch, maar als ik in class_b.py "import core" doe geeft hij begrijpelijkwijs ook een fout, aangezien dat een infinite loop is (core importeert class_b importeert core importeert class_b... etc).
Is er een manier om vanuit een geïmporteerde module te verwijzen naar variabelen/objecten uit de module van waaruit er geïmporteerd wordt?
Python:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| > core.py from class_a import a from class_b import b obj1 = a() obj2 = b() > class_a.py class a: def message(self, msg): print('message: %s' % msg) > class_b.py class b: def __init__(self): core.obj1.message('object with class b created') |
Het daadwerkelijke programma is natuurlijk uitgebreider, maar dit is het basis-idee. Het probleem waar ik tegenaan loop is dat ik vanuit class b blijkbaar niet naar objecten die ik in core heb aangemaakt kan verwijzen. Ik krijg de fout dat "core" geen global name is. Dit is op zich logisch, maar als ik in class_b.py "import core" doe geeft hij begrijpelijkwijs ook een fout, aangezien dat een infinite loop is (core importeert class_b importeert core importeert class_b... etc).
Is er een manier om vanuit een geïmporteerde module te verwijzen naar variabelen/objecten uit de module van waaruit er geïmporteerd wordt?
[ Voor 0% gewijzigd door Stijn op 15-04-2009 22:02 . Reden: verduidelijking ]