模块当代码量很大的时候,我们不可能把所有的代码写在一个文件中,所以这时候就需要分多个.py文件进行写代码 。一个.py文件就是一个模块 。如文件名为main.py,那么模块名就为main 。即可以把模块理解为文件 。像之前的 import random,random就是一个文件
模块的使用1. from 模块名 import xx
从指定的模块中导入指定的东西 。如下在main文件中导入function模块中的函数
function.py
def add(a , b):c = a + bprint(c)def jian(a,b):c = a + bprint(c)print("ok")main.py
将function模块中的add,jian函数导入,默认其他的输出语句也会导进来
from function import add,jianadd(2,3)jian(5,2)

文章插图
2. from 模块名 import *
从指定的模块中导入所有的东西 。但是不推荐使用,容易导致函数不知道来自哪个模块
main.py
from function import *add(2,3)jian(5,2)
文章插图
3. import 模块名
或者可以直接先导入模块,然后在需要调用模块中的函数的时候,模块名.函数名,即可
function.py
def add(a , b):c = a + bprint(c)def jian(a,b):c = a + bprint(c)print("ok")main.pyimport functionfunction.add(2,3)
文章插图
if __name__ == "__main__":
在上面介绍的三种导入模块的方法中我们知道,导入的时候不仅会导入指定的函数,还会将其他的print等一些语句导入进去,这显然不会我们想要的
function.py
def add(a , b):c = a + bprint(c)def jian(a,b):c = a + bprint(c)print("ok")add(4,4)main.pyfrom function import addadd(5,6)本来只想导入add这个函数,然后把其他的无关紧要的测试语句要导入进来了
文章插图
为了避免这些测试代码在模块被导入后执行,可以利用__name__属性 。
function.py
我们将一些测试语句放在__name__ == '__main__'下面,导包的时候就不会将这些无关的数据导入进去
def add(a , b):c = a + bprint(c)def jian(a,b):c = a + bprint(c)if __name__ == '__main__':print("ok")add(4,4)main.pyfrom function import addadd(5,6)
文章插图
包那什么是包了?多个相同功能的模块,放在同一个文件夹下,并且拥有__init__.py 这个文件,那么这个文件夹就叫包 。
__init__.py
当倒入包的时候,包中的__init__.py中的内容会自动执行,无需手动调用
package包内容如下

文章插图
test.py
test.py与package文件夹处于同一级目录,导入包中的read, write模块中的函数,此时会自动导入__init__.py中的内容
from package.read import re #从包中的模块中导入函数from package.write import wrre()wr()__inti__.py中的文件内容print("没有主动调用也会自动调用")

文章插图
原文链接:
https://blog.csdn.NET/qq_44159028/article/details/120415294
【python中模块与包】
推荐阅读
- 实现 Python | 继承关系
- 跨平台Python异步聊天机器人框架,支持QQ、飞书、钉钉等渠道
- 4 步打包一个新的 Python 模块
- 柯以敏|她自认为是“国际巨星”,封杀后哭着求原谅,在节目中疯狂耍大牌
- 韩国|韩媒:中国企业“明目张胆”挖走尖端技术人才,撼动韩国的未来!
- |职场上,做好这三件事,很容易成为同事眼中的好人
- |中年人在职场,要有“随时离开”的能力
- 德国眼中的希特勒?希特勒在德国
- 游戏|《如龙:维新 极》中文实机预告 新登场三位绝美老师
- 夏天下午好钓鱼吗 夏天中午怎么钓鱼好钓
