且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

模块化简介 | Python从入门到精通:高阶篇之三十七

更新时间:2022-03-24 23:09:03

多重继承 | Python从入门到精通:高阶篇之三十二

模块(module)

模块化,模块化指将一个完整的程序分解为一个一个小的模块,通过将模块组合,来搭建出一个完整的程序。

如果不采用模块化,统一将所有的代码编写到一个文件中。
采用模块化,将程序分别编写到多个文件中。化整为零的过程。

我们来思考一下使用模块化好,还是不使用模块化好?
模块化的优点:
① 方便开发,多人协作开发时,分工明确。
② 方便维护
③ 模块可以复用!在项目开发过程中,如果有相同功能的不同项目,可以通过现有模块直接用。只需要开发与之不同的模块。

模块的创建

在Python中一个py文件就是一个模块,要想创建模块,实际上就是创建一个python文件。
注意:模块名要符号标识符的规范。
现在来创建一个test_module模块。

print('我是一个模块')

执行结果:

模块化简介 | Python从入门到精通:高阶篇之三十七
模块化简介 | Python从入门到精通:高阶篇之三十七

我们如何去引用模块?

在一个模块中引入外部模块
① import 模块名 (模块名,就是python文件的名字,注意不要py)。
新建一个模块,直接引用。

import test_module 

执行结果:

模块化简介 | Python从入门到精通:高阶篇之三十七

我们对test_module模块进行修改:

print('我是test_module模块')

此时我们去重新执行这个新建的模块。
执行结果:

模块化简介 | Python从入门到精通:高阶篇之三十七

此时可以确定,这个模块被引用成功了。
是否可以多次引用?

import test_module 
import test_module 
import test_module 

执行结果:

模块化简介 | Python从入门到精通:高阶篇之三十七

此时引用了3次,执行结果只有一个。所以,可以引入同一个模块多次,但是模块的实例只会创建一个。
我们可以直接打印。

print(test_module)

执行结果:

模块化简介 | Python从入门到精通:高阶篇之三十七

② import 模块名 as 模块别名

import test_module as test

# print(test_module)
print(test)

执行结果:

模块化简介 | Python从入门到精通:高阶篇之三十七
模块化简介 | Python从入门到精通:高阶篇之三十七

注意:import可以在程序的任意位置调用,但是一般情况下,import语句都会统一写在程序的开头。
在每一个模块内部都有一个__name__属性,通过这个属性可以获取到模块的名字。
我们在test_module模块中添加

print(__name__)

然后在新建的模块中执行。

模块化简介 | Python从入门到精通:高阶篇之三十七

或者可以zhiji直接在新建的模块中打印

print(test.__name__)

执行结果:

模块化简介 | Python从入门到精通:高阶篇之三十七

是否可以获取本模块的name

print(__name__)

执行结果:

模块化简介 | Python从入门到精通:高阶篇之三十七

此时可以发现,获取的结果与我们的文件名不一致,我们需要知道__name__属性值为 __main__的模块是主模块,一个程序中只会有一个主模块,主模块就是我们直接通过 python 执行的模块。直接执行哪个,哪个就是主模块。

配套视频课程,点击这里查看

获取更多资源请订阅Python学习站