菜鸟的wxpython问题

菜鸟的wxpython问题

#!/usr/bin/env python

import wx
import sys

class Frame(wx.Frame):

    def __init__(self, parent, id, title):
        print "Frame __init__"
        wx.Frame.__init__(self, parent, id, title)

class App(wx.App):

    def __init__(self, redirect=True, filename=None):
        print "App __init__"
        wx.App.__init__(self, redirect, filename)

    def OnInit(self):
        print "OnInit"   
        self.frame = Frame(parent=None, id=-1, title='Startup')  
        self.frame.Show()
        self.SetTopWindow(self.frame)
        print    sys.stderr, "A pretend error message"  
        return True

    def OnExit(self):
        print "OnExit"

if __name__ == '__main__':
    app = App(redirect=True)
    print "before MainLoop"
    app.MainLoop()  
    print "after MainLoop"


我的疑问是为什么类App 的 __init__方法是在这个程序结束的时候才被调用的?
我原以为是在OnInit方法之后调用的
至少也应该在程序运行时调用啊,怎么到了窗口关闭时才调用呢?

我运行这个例子的时候,可以发现“App __init__”是最后打印的,更后面的是就是“after MainLoop”
谢谢!
晕倒,我自己刚才没想清楚
把app = App(redirect=True)改为
app = App(redirect=False)就可以看清楚全部顺序了