Python模块(module),是一个Python文件(以.py结尾),模块能定义函数、类和变量,模块里也能包含可执行的代码
模块的作用:可以认为模块就是一个工具包
人话:模块就是一个python文件,里面有类、函数和变量等,我们可以拿过来用(导入模版去使用)
1.使用import导入xx模块使用xx功能(函数)
import 模块名(调用模块里的东西时,需要用 模块名. 的形式)
# 使用import导入time模块使用sleep功能(函数)
import time
print("你好")
time.sleep(5)
# 通过. 就可以使用模块内部的全部功能(类、函数、变量)
print("我好")
2.使用*导入xx模块的全部功能
# 使用*导入time模块的全部功能
from time import *
# * 表示全部的意思
sleep(5)
3.当我们只需要用到模块里的一个方法时,我们可以:
from 模块名 import 功能名(调用模块里的东西时,直接调用)
from time import sleep
# 案例:导入time模块中的sleep方法
print("开始")
sleep(1)
# 让程序睡眠1秒(阻塞)
print("结束")
4.as定义别名
模块定义别名:import 模块名 as 别名
import time as tt
tt.sleep(2)
print("hello")
功能定义别名:from 模块名 import 功能 as 别名
from time import sleep as sl
sl(2)
print("hello")
自定义模块:其实也就是自己写一个python file嘛,文件名字=模块名字
不过注意一下,不同模块里的方法重名的情况
# 模块1代码
def my_test(a, b):
print(a + b)
# 模块2代码
def my_test(a, b):
print(a - b)
# 导入模块和调用功能代码
from my_module1 import my_test
from my_module2 import my_test
# my_test函数是模块2中的函数
my_test(1, 1)
其实那条from my_module1 import my_test的语句会变成灰色的,因为它被覆盖了
假设说我们的模块里面,写了一条语句调用了模块里def的函数(测试模块文件可用),当我们import完,运行app文件时,其实就是执行了一下那个模块,那么里面那条函数调用语句也会执行。但我们不想执行它怎么办?
可以在模块文件里写
def my_test(a, b):
print(a + b)
if __name__ == '__main__':
my_test(1, 2)
因为我们每个python文件,都有一个内置变量叫做__name__,当我们以右键运行这个文件的时候,这个变量的名字就会自动标记为__main__,if语句为true,执行test函数