摘要: StringIO 很多时候,数据读写不一定是文件,也可以在内存中读写。 StringIO顾名思义就是在内存中读写str。 要把str写入StringIO,我们需要先创建一个StringIO,然后,像文件一样写入即可: getvalue()方法用于获得写入后的str。 要读取StringIO,可以用一 阅读全文
posted @ 2019-03-12 19:47 离去墨染 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 读写文件是最常见的IO操作。Python内置了读写文件的函数,用法和C是兼容的。 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从 阅读全文
posted @ 2019-03-12 19:46 离去墨染 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 如果你经常阅读Python的官方文档,可以看到很多文档都有示例代码。比如re模块就带了很多示例代码: 可以把这些示例代码在Python的交互式环境下输入并执行,结果与文档中的示例代码显示的一致。 这些代码与其他说明可以写在注释中,然后,由一些工具来自动生成文档。既然这些代码本身就可以粘贴出来直接运行 阅读全文
posted @ 2019-03-12 19:46 离去墨染 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 如果你听说过“测试驱动开发”(TDD:Test-Driven Development),单元测试就不陌生。 单元测试是用来对一个模块、一个函数或者一个类来进行正确性检验的测试工作。 比如对函数abs(),我们可以编写出以下几个测试用例: 输入正数,比如1、1.2、0.99,期待返回值与输入相同; 输 阅读全文
posted @ 2019-03-12 19:45 离去墨染 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 程序能一次写完并正常运行的概率很小,基本不超过1%。总会有各种各样的bug需要修正。有的bug很简单,看看错误信息就知道,有的bug很复杂,我们需要知道出错时,哪些变量的值是正确的,哪些变量的值是错误的,因此,需要一整套调试程序的手段来修复bug。 第一种方法简单直接粗暴有效,就是用print()把 阅读全文
posted @ 2019-03-12 19:44 离去墨染 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 在程序运行的过程中,如果发生了错误,可以事先约定返回一个错误代码,这样,就可以知道是否有错,以及出错的原因。在操作系统提供的调用中,返回错误码非常常见。比如打开文件的函数open(),成功时返回文件描述符(就是一个整数),出错时返回-1。 用错误码来表示是否出错十分不便,因为函数本身应该返回的正常结 阅读全文
posted @ 2019-03-12 19:44 离去墨染 阅读(257) 评论(0) 推荐(0) 编辑
摘要: type() 动态语言和静态语言最大的不同,就是函数和类的定义,不是编译时定义的,而是运行时动态创建的。 比方说我们要定义一个Hello的class,就写一个hello.py模块: 当Python解释器载入hello模块时,就会依次执行该模块的所有语句,执行结果就是动态创建出一个Hello的clas 阅读全文
posted @ 2019-03-12 19:10 离去墨染 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 看到类似__slots__这种形如__xxx__的变量或者函数名就要注意,这些在Python中是有特殊用途的。 __slots__我们已经知道怎么用了,__len__()方法我们也知道是为了能让class作用于len()函数。 除此之外,Python的class中还有许多这样有特殊用途的函数,可以帮 阅读全文
posted @ 2019-03-12 19:09 离去墨染 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 当我们需要定义常量时,一个办法是用大写变量通过整数来定义,例如月份: 好处是简单,缺点是类型是int,并且仍然是变量。 更好的方法是为这样的枚举类型定义一个class类型,然后,每个常量都是class的一个唯一实例。Python提供了Enum类来实现这个功能: 这样我们就获得了Month类型的枚举类 阅读全文
posted @ 2019-03-12 19:09 离去墨染 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 继承是面向对象编程的一个重要的方式,因为通过继承,子类就可以扩展父类的功能。 回忆一下Animal类层次的设计,假设我们要实现以下4种动物: Dog - 狗狗; Bat - 蝙蝠; Parrot - 鹦鹉; Ostrich - 鸵鸟。 如果按照哺乳动物和鸟类归类,我们可以设计出这样的类的层次: 但是 阅读全文
posted @ 2019-03-12 19:08 离去墨染 阅读(157) 评论(0) 推荐(0) 编辑