首页 > 其他学习 > python > Python中的模块
2017
09-27

Python中的模块

模块是Python中组织代码的基本方式

Python的脚本都是用扩展名为py的文本文件保存的,一个脚本可以单独运行,也可以导入另一个脚本中运行,当脚本被导入运行时,我们将其称为模块(module),另外.pyc和.pyo文件也可以当作模块,当调用模块时,如果该模块文件是.py,那么会自动在该模块所在目录生成一个名字相同的.pyc编译文件,加快以后的调用执行的速度。

Python中的模块可以按照目录组织为包,创建一个包的步骤是:

1、建立一个名字为包名字的文件夹

2、在该文件夹中创建一个__init__.py文件(存放包的信息,可以为空)

3、根据需要在该文件夹下存放脚本文件

4、导入模块时使用包名.模块名的方法,使用模块中的函数时包名.模块名.函数名()

模块的导入:

1、import 模块名 / import 模块名 as 变量名(将导入的模块对象赋值给一个变量,可以理解成模块别名)

在后面调用模块中的函数时使用模块名.函数名()或者模块别名.函数名()的方式调用。

模块名与脚本的文件名相同(不包含.py),可以在模块内部使用全局变量,而无需担心它将来与某个用户的全局变量在导入模块时意外冲突。

出于性能考虑,每个模块在每个解释器会话中只导入一遍。因此,如果修改了模块,需要重启解释器;

也可以用reload(module)重新加载模块,如import imp; reload(imp)。

reload会重新加载已加载的模块,但原来已经使用的实例还是会使用旧的模块,而新生产的实例会使用新的模块;

reload后还是用原来的内存地址;

reload不支持 from ××× import ××× 格式的模块进行重新加载。

2、from 模块名(包名) import 函数1(模块1)[,函数2(模块2),...] :从包导入模块或从模块导入某个或某些对象。如导入某个模块的某个函数,此时调用这个函数或者模块名.函数名()调用即可,前面不需要模块名.函数名()或者包名.模块名的方式调用。

可以导入一个模块或包中的所有对象或模块:from 模块名(包名) import import *

如果模块脚本中本身有输出或者某些操作,我们调用的时候使用Python内置属性__name__来判断当前的是否是脚本本身的运行(此时__name__的值为__main__)或者是在被作为模块调用时的运行(此时__name__的值为作为本调用的模块名,也就是文件名。

使用import语句导入模块时,Python会自动在当前脚本所在目录搜索,如果没有找到,会到sys.path变量中给出的目录中查找。sys.path变量初始化时默认包含了当前脚本目录,PYTHONPATH和安装目录。这样就允许 Python 程序了解如何修改或替换模块搜索目录。需要注意的是包含在搜索路径中的脚本不应该和标准模块重名,否则在导入模块时 Python 会尝试把这些脚本当作模块来加载。

3、__import__(module) 函数用于动态加载类和函数 。如果一个模块经常变化就可以使用 __import__() 来动态载入。

最后编辑:
作者:qingheluo
这个作者貌似有点懒,什么都没有留下。