首页 > 编程笔记 > Python笔记 阅读:7

Python模块的定义和使用(附带实例)

学习 Python 的过程中,我们习惯将 Python 代码写在同一个源代码文件里。

随着程序功能复杂性的增加,代码越来越多,假设一个程序有 10 万行代码,为了使代码的逻辑更加清晰,更加便于维护,可以把不同功能的函数分组,分别存放在不同的源代码文件里。这样一来,每一个源代码文件中的代码量就很少,非常便于理解和维护。

Python 的每一个源代码文件以后缀 .py 命名,每个 .py 文件被称为模块。

使用模块的最大好处是能让程序逻辑更加清晰,便于维护,且可以反复互相被引用,减少总的代码量。使用模块还可以避免函数和变量的冲突,相同名的函数和变量可以分别在不同的模块中进行定义和使用。

定义一个新的模块,在模块中构建一个新的打印函数,使输出打印信息时能够加上个人标签,模块名为 module,源代码文件为 module.py,即:
def printInfo(input):
    print('[Python-IoT]', input)

Python模块的使用

1) import语句

要想使用构建的 module 模块,需要在另一个源代码文件中使用 import 语句将 module 模块导入,编写测试程序 test.py 的代码为:
import mymodule
mymodule.printInfo('test')

将 module.py 和 test.py 放置在同一个目录下,执行测试程序 test.py 的运行结果为:

[Python-IoT] test

可以看到,module 模块提供的打印函数自动在输出内容前添加了标签 [Python-IoT]。

2) from import语句

在 Python 中,from import 语句可以将模块中的指定函数导入命令空间,如在测试程序 test.py 中,使用 from module import printInfo 可以将 printInfo() 函数导入,直接调用 printInfo() 函数,不需要通过模块名来调用。
#import mymodule
from module import printInfo
printInfo('test')
注意,本例中使用的是 printInfo('test'),上一例中使用的是 module.printInfo('test')。

如果模块中有多个函数,那么使用 from import 语句可以仅导入需要的函数,其他函数不需要导入。如果想要导入模块的所有内容,则使用 from…import*。

在模块中,除了函数,还可以有其他可执行的代码。这些代码只有模块被第一次导入时才被执行。修改 module.py 为:
print('Before func')
def printInfo(input):
    print('[Python-IoT]', input)

print('After func')

修改 test.py 为:
import module
import module
from mymodule import printInfo

printInfo('test')

执行 test.py 的结果为:

Before func
After func
[Python-IoT] test

可以看到,模块 module 中的其他代码在模块被导入时执行,无论被导入多少次,仅执行一次。

相关文章