Python笔记10-模块

【模块】

在D:\python 目录中创建 hello.py

然后,就可以如下操作:

(此时,D:/python 目录下会多一个 “hello.pyc” 文件,是已经编译过的文件)

但是,如果再次import hello,就什么都没有了:

如果坚持需要再次导入,使用:hello = reload(hello)

【在模块中定义函数】

(1)可以用同样的方法来使用任何在模块的全局作用域中定义的名称(代码重用)。

(2)在模块中增加测试代码——用来检查模块本身是否正常工作的测试代码。使用 __name__ 变量。

 

【让模块可用】

理想状态下,一开始sys.path 本身就应该包含正确的目录,那么需要:

① 将模块放置在合适的位置:

◆ 搜索路径目录的列表可以在sys模块中的path变量中找到:

◆ 上面的结果中,site-packages 目录是最佳选择。只要将模块放入此目录,所有程序都能自动导入了。

◆ pprint模块中的pprint函数可以替代普通的print语句,可以多行打印,能够提供更加智能的打印输出。

②告诉解释器去哪里查找需要的模块。

标准的实现方法是在PYTHONPATH环境变量中包含模块所在的目录。(具体怎么做,用到的时候再去查,因为windows下和Linux下的实现方式不一样!)

【包(package) 】

包——基本上就是另外一类模块,而且能包含其他模块。当模块存储在文件中时(扩展名.py),包 就是模块所在的目录。 __init__py文件。例如有个名为 constants的包,文件 constant/__init__.py包括语句 PI=3.14,那么可以:import constants; print constants.PI;

【研究模块】

查看模块包含的内容可以使用 dir 函数,会将对象的所有特性列出,结果是一长串名字:

可以使用列表推导式过滤(包含结果中所有不以下划线开头的名字的列表):

◆ __all__ 变量:

◆ help() 函数:

例如:

help(copy); #返回一大堆信息

help(copy.copy)

print copy.copy.__doc__

print range.__doc__

◆ 使用源代码:阅读标准模块copy的源代码,一种方法是 检查 sys.path然后自己找;另外一种快捷方法是 检查模块的 __file__ 属性(打开对应的.py文件)。

【标准库】

(1)sys 模块能够访问与Python解释器联系紧密的变量和函数。

使用方法: sys.argv; sys.exit;

例如(10/01.py):反序打印命令行参数,参数会放置在sys.argv列表中,脚本的名字为 sys.argv[0]。

(2)os 模块提供了访问多个操作系统服务的功能。os 和 它的子模块 os.path 还包括一些用于检查、构造、删除目录和文件的函数。

(3) fileinput 模块——能够遍历文本文件的所有行。

【集合】

(1)集合 Set —— 直接创建集合即可。

(2)集合是由序列构建的,其副本是被忽略的。

(3)同字典,集合元素的顺序是随意的。

(4)计算两个集合的并集,使用union方法,或者 | 运算符。

(5)集合的一些其他方法和对应的运算符:

【堆】

堆 —— 是“优先队列”的一种,使用优先队列能够以任意顺序增加对象,并且能在任何时间找到最小的元素。Python中只有一个包含一些堆操作函数 的模块,叫做 heapq,包含6个函数。

(1)heappush 函数 用于增加堆的项,只能用于通过各种堆函数建立的列表中。

(2)heappop 函数 弹出最小的元素。

(3)heapify 函数 使用任意列表作为参数,并且通过尽可能少的移位操作,将其转换为合法的堆。

(4)heapreplace 函数 弹出堆的最小元素,并且将新元素推入,这样比 调用heappop之后再调用heappush更高效。

【双端队列】deque

双端队列——在需要按照元素增加的顺序来移除元素时非常有用。双端队列通过可迭代对象(比如集合)创建。

【time】

time 模块所包含的函数能够实现以下功能:获得当前时间、操作时间和日期、从字符串读取时间以及格式化时间为字符串。

(1)time.asctime() 将当前时间格式化为字符串:

【random】

random模块包括返回随机数的函数。

【shelve】

shelve是一额简单的数据存储方案,他只有一个函数就是open(),这个函数接收一个参数就是文件名,然后返回一个shelf对象,你可以用他来存储东西,就可以简单的把他当作一个字典,当你存储完毕的时候,就调用close函数来关闭。

【re】正则表达式

(小结)

【代码】https://github.com/rxbook/study-python/tree/master/10

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章