一、什么是模块
python模块(Module)是一个Python文件,以.py结尾。模块能定义函数、类和变量,模块里也能包含可执行的代码。
二、模块的作用
Python中有很多各种不同的模块,每一个模块都可以帮助我们实现一些功能,比如实现和时间相关的功能就可以使用time模块,我们可以认为一个模块就是一个工具包,每一个工具包中都有各种不同的工具供我们使用,进而实现不同的功能。
三、导入Python内置的模块
模块在使用前需要先导入
模块的导入方式
[from 模块名] import [模块 | 类 | 变量 | 函数 | *] [as 别名]
- import 模块名
- from 模块名 import 功能名 (类、函数、变量等)
- from 模块名 import *
- import 模块名 as 别名
- from 模块名 import 功能名 as 别名
下面一一进行演示
(一)import 模块名
# 导入时间模块
import timeprint('让程序进入睡眠状态,开始')
time.sleep(1)
print('睡眠状态结束')
(二)from 模块名 import 功能名 (类、函数、变量等)
# 导入时间模块中的sleep方法
from time import sleepprint('程序睡眠开始')
sleep(1)
print('程序睡眠结束')
(三)from 模块名 import *
# 利用 * 可以将模块内部的全部函数全部导入进来
from time import *
# 获取时间戳
print(time())
# 程序睡眠
sleep(1)
(四)import 模块名 as 别名
# 比较有意思的玩法
import time as tmtm.sleep(1)
print(tm.time())
(五)from 模块名 import 功能名 as 别名
# 给模块的方法起别名
from time import sleep as s
print('1')
s(1)
print('1')
四、自定义模块的使用
1、注意
当导入多个模块的时候,且模块内有同名函数,当调用这个同名函数的时候,调用到的是后面导入的模块的函数
2、演示
(一)创建如下三个文件
(二)test01内部写入以下代码:
def func(a, b):c = a + bprint(f'我是test01模块内的函数\n运算的结果为:{c}')
(三)test02内部写入以下代码:
def func(a, b):c = a * bprint(f'我是test02模块内的函数\n运算的结果为:{c}')
(四)在main函数内部写入以下代码:
from test01 import func
from test02 import funcif __name__ == '__main__':func(10, 20)
(五)运行结果:
很明显意料之中!!
3、另外
之前一直使用的
if __name__ == '__main__':
解释一下:
只有当程序是直接执行的才会进入if内部,如果是被导入的(即在另外一个文件里面调用该文件),则if无法进入
4、__all__
如果一个模块文件中有__all__变量,当使用from xxx import *导入时,只能导入这个列表中的元素
(一)利用上面创建的两个test文件和main进行演示
在test01文件中写入以下代码:
__all__ = ['func01']def func01(a, b):c = a + bprint(f'我是将两个变量进行相加的函数\n运算的结果为:{c}')def func02(a, b):c = a * bprint(f'我是将两个变量进行相乘的函数\n运算的结果为:{c}')
那么在main函数中就只能写入以下代码:
from test01 import func01if __name__ == '__main__':func01(10, 20)