模块
一、什么叫做模块
- 模块的英文为Modules
- 一个模块中可以包含多个函数
- 在python中一个拓展名为.py的文件就是一个模块
二、使用模块的好处
- 方便其他程序和脚本的导入并使用
- 避免函数名和变量名冲突
- 提高代码的可维护性
- 提高代码的可重用性
三、自定义模块
1、创建模块
新建一个.py文件,名称尽量不要与python自带的标准模块名称相同
2、导入模块
import 模块名称 【as 别名】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | import math #导入关于数学运算的模块 print(math) print(id(math)) print(type(math)) print( '________________________________' ) print(dir(math)) print(math.pi) #可以发现就是Π的值 print(math.pow(2,3),type(math.pow(2,3))) #pow就是指数的意思 print( int (math.pow(2,3))) #可以发现转为 int 类型后就不会有小数 print(2**4) print(type(2**4)) print(math.ceil(9.0001)) #ceil:天花板,直接进不舍 print(math.floor(9.999)) #floor:地板,全部舍弃,不进 |
from 模块名称 import 函数 / 变量 / 类
1 2 3 4 5 6 7 | #只导入指定的内容——pi from math import pi print(pi) 运行结果: 3.141592653589793 |
3、导入自定义模块
自定义模块文件calc:
1 2 3 4 5 6 | #自定义模块 def Add(a,b): return a+b def Div(a,b): return a/b |
调用模块文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 | #导入自定义的模块calc import calc print(calc.Add(10,30)) print(calc.Div(10,4)) from calc import Add print(Add(10,30)) 运行结果: 40 2.5 40 |
补充:在调用自定义模块文件时,如果报错,可以这样设置
4、以主程序形式运行
在每个模块的定义中都包含一个记录模块名称的变量__name__,程序可以检查该变量,以确定他们在哪个模块中执行。如果一个模块不是被导入到其他程序中执行,那么它可能在解释器的顶级模块中执行。顶级模块的__name__变量的值为__main__
模块文件:
1 2 3 4 5 | #模块调用 def Add(a,b): return a+b print(Add(10,20)) |
调用文件:
1 2 3 4 | #调用calc模块 import calc2 print(calc2.Add(10,50)) |
运行结果:
1 | 30<br>60<br>#在这里,我们可以发现,即使我们调用的是Add(10,50),但是我们在调用calc2模块的时候总会导致调用Add(10,20)。也就是会多输出一个数据 |
解决办法:修改calc模块文件
1 2 3 4 5 6 | #模块调用 def Add(a,b): return a+b if __name__ == '__main__' : #将Add(10,20)装入main中 print(Add(10, 20)) |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)