(6)python模块

一、前言

因个人习惯,在阅读和学习文字资料时,习惯摘写笔记,因此在这里留下自己的学习记录。笔记的内容偏摘抄为主,并非自己的原创内容。

内容基于:《简明 Python 教程》Swaroop, C. H. 著沈洁元  译

二、模块

(1)定义

包含了所有你定义的函数和变量的文件。

(2)注意

为了在其它程序重用模块,模块的文件名必须以.py为扩展名。

三、标准模块的使用(import 模块名)

(1)sys模块(sys=system)

sys模块包含python解释器环境相关的函数。

使用:通过 import 关键字导入模块,例 import sys(在sys.path变量中所列目录中寻找sys.py模块,若找到文件,则模块的主块中的语句被运行,然后才能被你所用,该初始化过程仅在第一次输入模块时进行)

模块的内容(变量)调用,格式  模块名.变量名  通过该形式,区别变量的来源,表明其归属哪个模块所有。

其中 sys.argv 是一个字符串列表,包含了命令行参数;sys.path包含输入模块的目录名列表。

当我们执行文件时,例 python xxxx.py    后面拼接内容,如:python xxxx.py we are atguments,则“we”"are" "arguments"会成为命令行参数的一部分(参数以空格分隔),其中第一个参数(即argv[0])为 执行的文件。

四、字节编译的.pcy文件

输入模块时,以.py扩展的相对较慢,因此python做了处理,以便加快输入模块的速度。其中一种方法是创建以.pcy为扩展的字节编译文件,该文件python变换程序的中间态(已完成部分输入模块所需的处理),与平台无关,用于再次输入模块。

五、输入模块的方式(前提,在同一个目录中)

(1)输入模块:import 模块(需以 模块名.的形式调用)

(2)直接输入模块的变量:from 模块名 import 变量名或函数名(若想使用sys模块的所有内容,则用*代替名称) ,如此一来,可直接使用相应的函数和变量(无需以 模块名.的形式调用,易导致名称冲突)

注意:from .. import...的形式不推荐(不利于程序的可读性,易造成名称冲突)

(3)先导入sys模块(import sys),再通过sys.path.append(r"模块路径")    不推荐

六、模块的名(__name__)

每个模块都有一个名称,在模块中可以通过语句来找出模块的名称。

功能实现:默认,输入模块时,该模块的主块被运行。若想程序本身被使用时运行主块,被别的模块输入时不运行。(__name__属性可实现)

例:

if __name__ == '__main__':
    print 'This program is being run by itself'
else:

    print 'I am being imported from another module'

如果执行模块自身的方式:python xxxx.py   则该模块的名称为 "__main__"

若输入模块的方式:import xxxx   则该模块的名称不为 "__main__",为“__XXXX__”

注意:每个python模块都有它的__name__

七、自定义模块

创建一个模块,实际就是创建一个python文件(.py为扩展名)

然后通过导入方式即可在别的模块使用相应的模块。

猜你喜欢

转载自blog.csdn.net/chen_courage/article/details/81021212