为什么《Dive into怎么用 Python》不值得推荐

DIP且不加书名号)。今天我要说嘚是它不值得推荐的理由:它太旧了而且内容编排相当古怪,全书来看缺乏大局观我没见认是靠它入门的,最后还有非常重要的一点——推荐者可能根本不在工作中使用 Python 基于老版本 在第一章,我们可以看到这本书基于 Python /html//toc//lanphaday/archive///la ...

}

动态语言和静态语言最大的不同就是函数和类的定义,不是编译时定义的而是运行时动态创建的。

变量类型总是强制的.如某个变量是整型,那么你就不可以用string的方法去處理,除非你把该变量转换成str

变量类型可能被忽略.如有个字符串变量'12',整型变量3,你可以直接把这两个变量连接起来变成'123',不需任何转换

动态绑定尣许创建类实例,或类后再添加新的方法,属性,.这是静态语言很难实现的.

Python允许在定义class的时候定义一个特殊的__slots__变量,来限制该class实例能添加的属性,对继承的子类是不起作用的.除非在子类中也定义__slots__变量

#__str__()返回用户看到的字符串而__repr__()返回程序开发者看到的字符串,也就是说__repr__()是为调试服務的。

如果一个类想被用于for ... in循环类似list或tuple那样,就必须实现一个__iter__()方法该方法返回一个迭代对象,然后Python的for循环就会不断调用该迭代对象嘚__next__()方法拿到循环的下一个值,直到遇到StopIteration错误时退出循环

return self # 实例本身就是迭代对象,故返回自己

任何类只需要定义一个__call__()方法,就可以直接對实例进行调用

可以通过type函数创建出新的类,通过type()函数创建的类和直接写class是完全一样的因为Python解释器遇到class定义时,仅仅是扫描一下class定义的语法然后调用type()函数创建出class。

使用try...except捕获错误还有一个巨大的好处就是可以跨越多层调用

程序打印完错误信息后会继续执行,并正常退出

单元測试是用来对一个模块,一个函数或者一个类来进行正确性检测的测试工作

另一种方法是在命令行通过参数-m unittest直接运行单元测试

以test开头的方法僦是测试方法,不以test开头的方法不被认为是测试方法测试的时候不会被执行。

}

我要回帖

更多关于 into 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信