[wxPython-users] Help with GetApp()
Christopher Barker
Chris.Barker at noaa.gov
Wed Sep 19 11:25:04 PDT 2007
Rob McMullen wrote:
>> Can someone please explain to me why this does not work and suggest a way of
>> accomplishing my objective.
>
> It's because you use print_const in the constructor of your MainFrame,
> and python hasn't completed building the class. Until the constructor
> returns, the reference to the MainFrame isn't valid in your app.
Also note that you are putting CONSTANT in your frame class -- does it
belong there, or should it be an attribute of the app itself. The way
you have it violates the "law of Demeter" -- now anything working with
the app needs to know that it has a "frame" attribute, and that the
frame attribute as a "CONSTANT" attribute -- no too bad, but starting to
get too deep.
Also, I know this is probably a simplified sample, but:
class MainFrame(wx.Frame):
CONSTANT = 3
def __init__(self, *args, **kwargs):
wx.Frame.__init__(self, *args, **kwargs)
print_const()
Why would you want to call a global function to print an attribute of
your frame class, from that class?
In general, I avoid global functions altogether -- why not have
print_const() be a method of your app?
-Chris
--
Christopher Barker, Ph.D.
Oceanographer
Emergency Response Division
NOAA/NOS/OR&R (206) 526-6959 voice
7600 Sand Point Way NE (206) 526-6329 fax
Seattle, WA 98115 (206) 526-6317 main reception
Chris.Barker at noaa.gov
More information about the wxpython-users
mailing list