模块
在python中,模块是最高级别的的程序组织单元,模块将程序代码和数据封装起来,以便增加代码的复用性。通常而言,一个模块对应着一个.py文件,每一个文件都是一个模块。
模块导入其他模块之后,其他模块便可以使用导入模块的内容。
为什么要使用模块
模块化的思维是面向对象的编程语言中的一个重要的思想。在python中,允许将许多独立的文件链接成一个更大的程序系统。python通过模块化的思想,将许多的部件组织成为系统。一个python模块文件的顶层定义的变量都成了被导入模块的对象的属性,也就是说,在导入过程中,模块文件的全局作用域变成了模块对象的命名空间。
python的模块在程序编写中的作用,主要有以下三点:
-
代码重用
- 在模块文件中的代码是永久保存的,而不像在python的交互模式下输出的代码,当退出时代码就会消失。在py模块文件中的代码会被永久保存下来,可以任意使用,这为代码的复用提供了极大的便利。
-
系统命名空间的划分
- 模块是python中最高级别的程序组织单元。python将变量名封装进了自包含的软件包,这一点对于避免命名冲突有很大的帮助。事实上,所有执行的代码以及对象都封装在模块中。
-
实现共享服务和数据
- 模块对于实现跨系统共享组件是很方便的,只需要一个拷贝即可,如当你需要一个全局对象的时候,你可以将它编写在一个模块中,以供多个函数或者文件调用。
模块的定义
在了解了模块的概念以及作用之后,我们便需要知道模块的定义以及使用方法。根据模块的代码规范,一个模块中通常需要包含以下内容:
- 类
- 可以实现单一功能的函数
- 测试代码
模块的使用
- 模块是python中最大的程序组织单元,也是一个相对独立的命名空间,因此,模块在使用之前,需要进行导入
模块的导入与使用方法
方法01:
-
模块的导入使用import
>>improt module_name >>module_name.function_name >>module_name.class_name
python中模块的导入就相当于把模块中的内容先执行了一遍
module_name的命名需要遵守python中的命名规范,如果module_name是以数字开头的,在进行模块导入的时候会出现错误,则需要使用importlib模块
>>#导入一个名称为01的模块
>>import importlib #导入importlib模块
>>f_name = importlib.import("01") #相当于导入了一个名称为01 的模块,并且把模块赋值给了变量f_name
方法02:
import module_name as a # 将模块module赋值给了变量a
即在导入模块时,将其赋值给了a
用法与方法1相同,即在引用时,将模块名替换为变量名
方法03:
>> from module_name import func_name, class_name
- 使用该语法有选择性导入
- 导入之后可以直接使用,不需要加模块名作为前缀
from module_name import *
- 使用该语法导入模块内的所有内容
- 导入之后可以直接使用,无需加模块名作为前缀
- 不能防止命名污染
测试代码
- 为了增加代码的复用性以及可维护性,每个模块最好添加自己的测试代码
- 测试代码在正常情况下无需执行,只有在模块作为主程序执行时再执行
- 因此,需要利用如下代码:
if __name__ == '__main__':
- 该语句下的代码块,只有当模块作为主程序运行时才会有效