『无为则无心』Python函数 — 37、Python中的包
2022/1/25 22:04:28
本文主要是介绍『无为则无心』Python函数 — 37、Python中的包,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录- 1、制作包
- (1)创建包
- (2)在包内创建模块
- 2、导入包
- 方法一
- 方法二
- 3、关于__pycache__文件夹说明
- 4、Python标准库
包是将有联系的模块组织在一起,即放到同一个文件夹下,并且在这个文件夹创建一个名字为__init__.py
文件,那么这个文件夹就称之为包(包就是一个文件夹)。
换句话说,包也是一个模块,是一个更高级的模块。当我们模块中代码过多时,或者一个模块需要被分解为多个模块时,这时就需要使用到包,普通的模块就是一个py
文件,而包是一个文件夹。引入了一个包,那包中的模块也能被引用了。
1、制作包
(1)创建包
[New] —> [Python Package] —> 输入包名 —> [OK] —> 新建功能模块。
- [New] —> [Python Package]
- 输入包名 —> [OK](或者回车)
- 可以看到项目目录导航窗口中,看到我们创建的包和包中的
__init__.py
文件。
注意:新建包后,包内部会自动创建
__init__.py
文件,这个文件控制着包的导入行为。
(2)在包内创建模块
1)新建包内模块:my_module1
和 my_module2
[new] —> [Python File] —> 输入文件名
2)模块内代码如下
# my_module1 print(1) def info_print1(): print('my_module1')
# my_module2 print(2) def info_print2(): print('my_module2')
2、导入包
方法一
# 导入 import 包名.模块名 # 调用包中模块的功能 包名.模块名.目标
示例:
# 导入包中模块--包名.模块名 import my_package.my_module1 # 调用功能--包名.模块名.功能() my_package.my_module1.info_print1()
方法二
# 导入包中功能 from 包名 import * 或者 功能名1、2、3... # 调用模块功能 模块名.目标
编辑__init__.py
文件中添加__all__ = []
__all__ = ['my_module1']
示例:
# 导包 from my_package import * # 调用__all__列表中定义模块的功能。 my_module1.info_print1()
注意:
必须在
__init__.py
文件中添加__all__ = []
,控制允许导入的模块列表。如果没有定义在
__all__
列表中的模块,无法导入到指定文件中。
3、关于__pycache__
文件夹说明
在包中还有一个叫__pycache__
的文件夹,__pycache__
是模块的缓存文件夹。
Python代码在执行前,需要被解析器先转换为机器码,然后再执行,所以我们在使用模块(包)时,也需要将模块的代码先转换为机器码然后再交由计算机执行,而为了提高程序运行的性能,Python会在编译过一次以后,将代码保存到一个缓存文件中,这样在下次加载这个模块(包)时,就可以不再重新编译而是直接加载缓存中编译好的代码即可(避免重复解释)。
__pycache__
文件夹可以删除,但是以后在调用包中的模块时,还会重新解释模块,还会把解释器处理完的代码保存在__pycache__
文件夹中。
4、Python标准库
为了实现开箱即用的思想,Python中为我们提供了许多模块的标准库,在这个标准库中,有很多很强大的模块,提供我们可以直接使用,并且标准库会随Python的安装一同安装。
模块、包和标准库的关系
- 模块:就是一个
.py
文件,相当于一个工具类。 - 包:将有联系的模块组织在一起,即放到同一个文件夹下,方便控制管理。
- 标准库:官方定义好的,具有相关功能模块的集合。如
os
和sys
等
总结:
这三个概念实际上都是模块,只不过是个体和集合的区别。
第三方库:就是由其他的第三方机构,发布的具有特定功能的模块。
这篇关于『无为则无心』Python函数 — 37、Python中的包的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-25Python编程基础:变量与类型
- 2024-11-25Python编程基础与实践
- 2024-11-24Python编程基础详解
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器