Chinaunix首页 | 论坛 | 博客
  • 博客访问: 123468
  • 博文数量: 14
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 197
  • 用 户 组: 普通用户
  • 注册时间: 2013-08-19 11:01
个人简介

菜鸟学习中······

文章分类

全部博文(14)

文章存档

2014年(1)

2013年(13)

我的朋友

分类: 其他平台

2013-09-13 11:57:00

这两个方法都是程序对象初始化的方法。
1、功能:
__init__()是对“类的对象”进行初始化的函数方法,
__Oninit__()是对“类”进行初始化的函数方法。(网友说:这个方法覆盖了__init__()方法,可是既然是这样,那么怎么还有很多程序上两个方法都被调用呢?单单用一个不是更好吗?还望大牛们不吝赐教,再此谢过!!!)
个人理解:由于这点性质,导致可他们被调用的时间的差别!!

2、何时被调用:
__init__()方法在实例化一个对象的时候被自动调用,无需人工调用。
而__OnInit__()方法则是在应用程序开始时到主事件循环开始前被自动调用,是wxpython所特有的一个方法。

3、使用说明:__OnInit__()要至少一个参数和返回一个True的布尔值,(之前网友说不要求参数和返回布尔值,然后我自己理解为:python的这个方法有自己默认的参数和返回值True,但实验证明这是错的!!)
只有当有至少一个参数并且返回一个True布尔值时才能正确执行程序!!
(1)  当你在__OnInit__()下添加“return False”时,应用程序将会被退出!下面是我对这个返回值测试的结果,如下图:

很明显的提示,“__OnInit__()返回false值,退出中~~~”,这是因为OnInit返回了False值所致的!
由以上的调用时间点我们可以很清楚的知道,__OnInit__()比__Init__()先被调用。

(2)  在__OnInit__()下不添加“return *”时,就是没有返回一个布尔值,报错如下图:

上面报错说“OnInit必须返回一个布尔值”,可见OnInit没有默认返回一个布尔值True,需要人工添加后才能返回,此时才能正确执行程序。


(3)  在__OnInit__()后面的括号中不带任何的参数,结果如下图:

上面报错说“OnInit没有带任何参数”,很明显,这里至少要带一个参数,像这样“__OnInit__(self)”

好了,以上就是我对这两个方法的一些理解了,有不妥之处还望指正,我定当学习修改!!
阅读(5599) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~