-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Math wrote: > *Mag ik je nog een laatste vraag stellen?* > *Iets wat ik niet helemaal kan doorgronden....* > *In de 1e module importeer ik de 2e module en om een object in de 1e > module te benaderen vanuit de 2e module importeer ik de 1e module in de > 2e module (KAN DIT??).* > *En dan gaat het fout.......dan kan die in de 2e module geen classes > meer vinden.....*
Je kunt wel modules gebruiken in elkaar. Alleen is het geen echt teken van goed softwareontwerp. Als je software in lagen schrijft, heb je vanuit elke laag alleen modules uit een lagere laag nodig. Soms zijn er uitzonderingen, en daarom kan het wel. Je moet dan alleen precies weten in welke volgorde python de zaak uitvoert. Statements in een bestand worden onmiddellijk uitgevoerd, behalve als ze in een functie of andere definitie staan. Dus: In module A staat bovenin een "import B". Daar begint de compiler meteen aan het importeren van B; de rest van A is dus nog niet bekend. Als bovenin B dan "import A" staat mag dat wel, alleen op dit moment is die A nog leeg, we zijn nog bezig om die module te importeren. Als je dus voor de definities in B klassen in A nodig hebt, kan dat niet. Als B helemaal ingeladen is, wordt daarna het laden van A afgemaakt. Daarna kunnen functies uit B die je aanroept dus wel bij alles wat in A is gestopt. Dus ===a.py===== import b def foo(): return "bar" b.test() ====b.py==== import a print a.foo() # Dit kan niet! def test(): print a.foo() # Dit kan wel. ============ Rob - -- Rob W.W. Hooft || [EMAIL PROTECTED] || http://www.hooft.net/people/rob/ -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFD4kSfH7J/Cv8rb3QRAq9FAJsHBOkJtaKJCj39nKQ2cI9tRN2fygCeMxGp 7oMBObcVZW8dKdnM1Tz6f58= =fyi+ -----END PGP SIGNATURE----- _______________________________________________ Python-nl mailing list Python-nl@python.org http://mail.python.org/mailman/listinfo/python-nl