python模块
模块(module)就是一个python文件,以.py结尾,模块内可以定义变量,函数和类,模块内也能包含可运行的代码块,引入模块一般写在文件开始的位置上 作用 : 模块可以帮助我们快速的实现一些功能, 一个模块就是一个工具包每个工具包中有各种不同的工具供我们使用,实现不同的功能
语法: [from 模块名] import[模块|类|变量|函数|*] [as 别名]
常用的组合形式
- import 模块名
- from 模块名 import 类、变量、方法等
- from 模块名 import *
- import 模块名 as 别名
- from 模块名 import 功能名 as 别名
1. 引入第三方模块
- 通过import引入time模块。
import time
print(1)
time.sleep(5) # 程序睡眠五秒钟
print(2) # 五秒时候打印2
- 通过 from 模块名 import 模块名
from time import sleep
print(1)
sleep(5) # 程序睡眠五秒钟
print(2) # 五秒时候打印2
- 使用 * 引入time的全部功能
from time import *
print(1)
sleep(5) # 程序睡眠五秒钟
print(2) # 五秒时候打印2
- 使用别名的方式引入,自定义名称。
import time as mytime
print(1)
mytime.sleep(5)
print(2)
或者这样
from time import sleep as mysleep
print(1)
mysleep(5)
print(2)
2. 引入自定义的模块
- 创建my_moudle1.py文件,文件内创建一个sum函数。
my_moudle1.py:
def sum(x, y):
return x + y
2.在moudle.py文件中引入:
from my_moudle1 import sum
num = sum(1, 2)
print(num) # 3
- 引入不同模块的同名功能,后边引入的会覆盖掉之前引入的。
创建my_moudle2.py文件:
def sum(x, y):
return x - y
在module中引入这两个文件
from my_moudle1 import sum
from my_module2 import sum
num = sum(1, 2)
print(num) # -1 后引入的my_module2文件中的sum替换掉了my_module1中的sum
3. 使用__main__控制模块内的内容
- python内置的__name__变量,因为当其他文件引入该模块的时候,会自动调用模块中的代码,sum测试代码会在被引入的时候就被执行,如果不想在被引入的时候就执行,可以使用下边的方法,当直接运行当前的python文件的时候才会执行下边文件中的内容,只有当程序是直接进入的时候才会执行if内的代码体。
if __name__ == '__main__':
sum(1, 2)
4. 使用__all__控制模块内的内容
- python中__all__ 变量,当其他文件使用*引入该模块全部文件的时候,只会导入__all__内部的函数或者变量。
__all__ = ["sum"]
def sum(x, y):
return x + y
def sub(x, y):
return x - y
这样当其他文件使用 * 引入全部内容的时候,只会引入sum函数,但是如果直接如果直接导入某个模块是不受__all__变量影响的。
from my_moudle1 import sub