[python-nl] Classes in andere modules

Martijn Pieters mj at python.org
Wed Feb 1 18:14:47 CET 2006


Math wrote:
> *Als ik code uitvoer geeft ie de melding dat module object geen 
> attribuut met naam MainApp heeft...*
> ** 
> Dit is MainAp in module marathon_manager:
> if __name__ == "__main__":
>     MainApp = MyApp(0)
>     MainApp.MainLoop()
> *Zou toch een attribuut moeten zijn van deze module of moet ie soms 
> global gemaakt worden?*
> ** 
> *Ik heb het wel weten op te lossen middels*
> self.ChildFrame.parent = MainApp.MDIParentFrame
> *Nu heeft ChildFrame een attribuut parent...*
> *Da's wat ik wilde.*
> ** 
> *Mocht jij toch weten waarom versie 1 niet werkt hoor ik dit natuurlijk 
> graag van je*

(Houd graag de conversatie op de lijst; ik kan niet altijd antwoorden, 
terwijl er altijd wel iemand op de lijst inzichten heeft).

MainApp in marathon_manager wordt alleen gedefinieerd wanneer je 
marathon_manager direct als script uitvoert. Dit omdat je test of 
__name__ gelijk is aan "__main__". Dit is *niet* het geval wanneer je 
marathon_manager elders importeert.

Als je MainApp ook buiten marathon_manager wil kunnen benaderen zal je 
de definitie ervan buiten het if-statement moeten houden.

Martijn Pieters


More information about the Python-nl mailing list