码迷,mamicode.com
首页 > 编程语言 > 详细

Python核心编程这本书的一些错误

时间:2016-06-14 22:15:15      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:

《Python核心编程第二版》这本书比《Python基础教程第二版修订版》详细很多,丰富了很多细节,虽然它是一本经典的入门书,但我发现还是存在一些明显的错误。在面向对象编程这一章,有两个错误

1).它说任何类都有一些内置的特殊的类属性(即程序员不在类中定义也会存在),见截图

技术分享

2).它说__new__方法比__init__方法更像是类的构造器。见截图:

技术分享

下面进行测试:

 1 #encoding:utf-8
 2 class MyClass():
 3     def doPrint(self):
 4         print doPrint invoked..
 5         
 6     def __init__(self):
 7         print __init__ method invoked..
 8         
 9     def __new__(self):
10         print __new__ method invoked..
11         
12     def __test__(self):
13         print __test__ method invoked..
14 
15 class MyClass2():
16     pass
17 
18 if __name__==__main__:
19     print dir(MyClass2)
20     print MyClass2.__dict__
21     
22     mc=MyClass()
23     mc.__test__()
24     mc.__new__()

输出结果:

[__doc__, __module__]
{__module__: __main__, __doc__: None}
__init__ method invoked..
__test__ method invoked..
__new__ method invoked..

 

通过分析测试结果可以发现:

对于1),默认情况下,类没有那么多特殊属性。

对于2),默认情况下,任何一个类都不包含__new__方法(dir(MyClass2)可以看到),而且即使程序员显式地定义该方法,类在实例化的时候也不会调用它,而只会调用__init__方法,__new__方法仅仅作为一个普通的实例方法存在,在显式调用它时才会起作用。

 

测试平台为Windows7,Python2.7.11

Python核心编程这本书的一些错误

标签:

原文地址:http://www.cnblogs.com/aaronhoo/p/5585596.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!