2018年5月16日
摘要: Python的标准库提供了两个模块:_thread和threading,_thread是低级模块,threading是高级模块,对_thread进行了封装。绝大多数情况下,我们只需要使用threading这个高级模块。 启动一个线程就是把一个函数传入并创建Thread实例,然后调用start()开始 阅读全文
posted @ 2018-05-16 17:01 裸睡的猪 阅读(3676) 评论(0) 推荐(1) 编辑
摘要: 字符串是编程时涉及到的最多的一种数据结构,对字符串进行操作的需求几乎无处不在。比如判断一个字符串是否是合法的Email地址,虽然可以编程提取@前后的子串,再分别判断是否是单词和域名,但这样做不但麻烦,而且代码难以复用。 正则表达式是一种用来匹配字符串的强有力的武器。它的设计思想是用一种描述性的语言来 阅读全文
posted @ 2018-05-16 16:47 裸睡的猪 阅读(709) 评论(0) 推荐(0) 编辑
摘要: 很多同学都听说过,现代操作系统比如Mac OS X,UNIX,Linux,Windows等,都是支持“多任务”的操作系统。 什么叫“多任务”呢?简单地说,就是操作系统可以同时运行多个任务。打个比方,你一边在用浏览器上网,一边在听MP3,一边在用Word赶作业,这就是多任务,至少同时有3个任务正在运行 阅读全文
posted @ 2018-05-16 16:46 裸睡的猪 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 看到类似__slots__这种形如__xxx__的变量或者函数名就要注意,这些在Python中是有特殊用途的。 __slots__我们已经知道怎么用了,__len__()方法我们也知道是为了能让class作用于len()函数。 除此之外,Python的class中还有许多这样有特殊用途的函数,可以帮 阅读全文
posted @ 2018-05-16 15:55 裸睡的猪 阅读(673) 评论(0) 推荐(0) 编辑
摘要: Python中包含了许多内建的语言特性,它们使得代码简洁且易于理解。这些特性包括列表/集合/字典推导式,属性(property)、以及装饰器(decorator)。对于大部分特性来说,这些“中级”的语言特性有着完善的文档,并且易于学习。 但是这里有个例外,那就是描述符。至少对于我来说,描述符是Pyt 阅读全文
posted @ 2018-05-16 15:48 裸睡的猪 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 在绑定属性时,如果我们直接把属性暴露出去,虽然写起来很简单,但是,没办法检查参数,导致可以把成绩随便改: 这显然不合逻辑。为了限制score的范围,可以通过一个set_score()方法来设置成绩,再通过一个get_score()来获取成绩,这样,在set_score()方法里,就可以检查参数: 现 阅读全文
posted @ 2018-05-16 11:31 裸睡的猪 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 正常情况下,当我们定义了一个class,创建了一个class的实例后,我们可以给该实例绑定任何属性和方法,这就是动态语言的灵活性。先定义class: 然后,尝试给实例绑定一个属性: 还可以尝试给实例绑定一个方法: 但是,给一个实例绑定的方法,对另一个实例是不起作用的: 为了给所有实例都绑定方法,可以 阅读全文
posted @ 2018-05-16 11:27 裸睡的猪 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 1.“包装”意思是一个已经存在的对象进行包装,不管他是数据类型还是一段代码,可以是对一个已经存在的对象增加新的,删除不要的或者修改其他已经存在的功能 2.包装 包括定义一个类,他的实例拥有标准类型的核心行为,换句话说,他现在不仅能唱能跳,还能像原类型一样步行。 这个图片说明了在类中包装的类型看起来像 阅读全文
posted @ 2018-05-16 11:12 裸睡的猪 阅读(343) 评论(0) 推荐(0) 编辑