2021-08-26 Python之模块的导入和使用
#模块的导入和使用
'''
在python中,模块是代码组织的一种方式,把功能相近的函数或者类放到一个文件中,一个文件(.py)就是一个模块(module)
模块就是文件名去掉后缀.py,
这样做的好处:
提高代码的复用性和可维护性,一个模块编写完毕后,可以很方便的在其他项目中导入
解决了命名冲突的问题,不同模块中相同的命名不会冲突
导入模块:
1.import 模块名
模块名.变量 模块名.函数 模块名.类
2.from 模块名 import 变量 | 函数 | 类
3.from 模块名 import *
该模块中所有的内容
但是如果想限制获取的内容,可以在模块中使用__all__=[使用*可以访问到的内容]
无论是import还是from的形式,都会将模块内容进行加载
如果不希望其进行调用,就会用到__name__
在自己的模块中__name__叫__main__
如果在其他模块中通过导入的方式调用的话,__name__就是模块名
'''
'''
常用标准库:
/------标准库------/------------------说明----------------------/
/------------------- /----- --------------------------------------- /
/builtins / 内建函数默认加载 /
/math / 数学库 /
/random / 生成随机数 /
/time / 时间 /
/datetime / 日期和时间 /
/calender / 日历 /
/hashlib / 加密算法 /
/copy / 拷贝 /
/functools / 常用的工具 /
/os / 操作系统接口 /
/re / 字符串正则匹配 /
/sys / Python自身的运行环境 /
/multiprocessing / 多进程 /
/threading / 多线程 /
/json / 编码和解码 JOSN 对象 /
/logging / 记录日志,调试 /
'''
#自定义模块
#模块,类,变量的导入
list1=[2,4,7,8,9,4,6]
#导入模块,import方法
'''
import calculate
#使用模块的函数 :模块名.变量 模块名.函数 模块名.类
#使用模块的函数
re=calculate.add(*list1)
print(re)
#使用模块变量
print(calculate.number)
#使用模块中类
cal=calculate.calculate(23)
cal.text()
#类方法
calculate.calculate.text1()
'''
#导入模块,from方法
from calculate import add,number
r=add(*list1)
print(r)
re=r+number
print(re)
#模块-测试导入
#变量
1 number=100 2 name='kiscaffdffdsz' 3 4 #函数 5 def add(*args): 6 if len(args)>1: 7 sum=0 8 for i in args: 9 sum+=i 10 return sum 11 else: 12 print('至少传入两个参数') 13 14 def minus(*args): 15 if len(args)>1: 16 m=0 17 for i in args: 18 m-=i 19 return m 20 else: 21 print('至少传入两个参数') 22 23 def multiply(*args): 24 pass 25 26 def divide(*args): 27 pass
1 #类方法 2 @classmethod 3 def text1(cls): 4 print('------------------->calculate中的类方法')
#模块的循环导入
'''
循环导入:
A:模块
def test():
f()
B : 模块
def f():
test()
相当于死循环,在开发中要避免循环导入
在大型的python项目中,有很多python文件,由于架构不当,可能会出现模块之间的相互导入
解决方案:
1.重新架构
2.将导入语句放到函数里面
3.把导入语句放到模块最后
'''
本文来自博客园,作者:{admin-xiaoli},转载请注明原文链接:{https://www.cnblogs.com/crackerroot}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架