<br><br><div class="gmail_quote">On Mon, Jan 23, 2012 at 4:20 PM, Ian Kelly <span dir="ltr"><<a href="mailto:ian.g.kelly@gmail.com">ian.g.kelly@gmail.com</a>></span> wrote:<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
The App object is created and the wx framework already knows about it.<br>
 It's just not assigned to the app global yet, and the OnInit call has<br>
not completed yet.  See:<br>
<br>
Python 2.5 (r25:51908, Sep 19 2006, 09:52:17) [MSC v.1310 32 bit<br>
(Intel)] on win32<br>
Type "help", "copyright", "credits" or "license" for more information.<br>
>>> import wx<br>
>>> class MyApp(wx.App):<br>
...     def OnInit(self):<br>
...         print "wx.GetApp() =", wx.GetApp()<br>
...         print "app =", app<br>
...         return True<br>
...<br>
>>> app = MyApp(0)<br>
wx.GetApp() = <__main__.MyApp; proxy of <Swig Object of type 'wxPyApp<br>
*' at 0x18d8fc0> ><br>
app =<br>
Traceback (most recent call last):<br>
  File "<stdin>", line 1, in <module><br>
  File "C:\Python25\lib\site-packages\wx-2.8-msw-unicode\wx\_core.py",<br>
line 7823, in __init__<br>
    self._BootstrapApp()<br>
  File "C:\Python25\lib\site-packages\wx-2.8-msw-unicode\wx\_core.py",<br>
line 7420, in _BootstrapApp<br>
    return _core_.PyApp__BootstrapApp(*args, **kwargs)<br>
  File "<stdin>", line 4, in OnInit<br>
NameError: global name 'app' is not defined<br>
<br></blockquote><div>I see, so that would get me access to the app instance during init of Class1 but if I can't access frame or the object as they still aren't created yet. I can only do that in attributes that I know won't be called until the app is created.</div>
<div>I'd have to do something like this:</div><div><br></div><div>class Class1:</div><div>    def __init__(self):</div><div>        self.app = wx.GetApp()</div><div><br></div><div>    def Method1(self):</div><div>        self.app.frame.object</div>
</div><br><div>This doesn't seem that pythonic. Is there a better way to do what I'm trying to do? Is there a better way to create my object for example?</div>