这两个方法都是程序对象初始化的方法。
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)”
好了,以上就是我对这两个方法的一些理解了,有不妥之处还望指正,我定当学习修改!!
阅读(5590) | 评论(0) | 转发(0) |