wxPython:输出重定向
通过一个实例来看看如何控制wxPython的输出,并观察各必要对象的创建次序及生命周期。
#!/usr/bin/env python # -*- coding: utf-8 -*- ''' Function:简单的wxPython程序 Input:NONE Output: NONE author: socrates blog:http://www.cnblogs.com/dyx1024/ date:2012-07-01 ''' import sys import wx class MyFrame(wx.Frame): ''' 创建一个Frame类 ''' def __init__(self, parent, id, title): print u"Frame对象初始化(Frame _init__)" wx.Frame.__init__(self, parent, id, title) class MyApp(wx.App): ''' 创建一个App类 ''' def __init__(self, redirect = True, filename = None): print "APP __init__" wx.App.__init__(self, redirect, filename) def OnInit(self): print u"APP对象的OnInit方法(OnInit)" self.frame = MyFrame(parent = None, id = -1, title = u"测试wxPyhont输出重定向") self.frame.Show() self.SetTopWindow(self.frame) print >> sys.stderr, u"输出到标准错误控制台。" return True def OnExit(self): print u"APP对象的OnExit方法" def main(): app = MyApp(redirect = True) #开始重定向 print u"begin MainLoop" app.MainLoop() print u"after MainLoop" if __name__ == '__main__': main()
运行一下看看:
可见,在APP对象创建之后(__init__方法调用结束),由于指定了重定向功能,所以输出切换到了stdout/stderr。
由上面的输出也可以看到各对象的生命同周期,创建先后顺序:
- app._init_()
- app.OnInit()
- Frame._init()
- app.MainLoop()
- app.OnExit()
观察这一句:app = MyApp(redirect = True) #开始重定向:
- 当redirect为True时,输出到wxPython框架,此时也可启用filename来指定输出到文件。
- 当redirect为False时,输出到控制台。
不积跬步,无以至千里;不积小流,无以成江海。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· Linux系统下SQL Server数据库镜像配置全流程详解
· 现代计算机视觉入门之:什么是视频
· 你所不知道的 C/C++ 宏知识
· 不到万不得已,千万不要去外包
· C# WebAPI 插件热插拔(持续更新中)
· 会议真的有必要吗?我们产品开发9年了,但从来没开过会
· 【译】我们最喜欢的2024年的 Visual Studio 新功能
· 如何打造一个高并发系统?