package包
- 从物理上看python就是一个文件夹
- 文件夹下包含一个__init__.py文件
- 该文件可用于包含多个模块文件
- 也可以说只要有__init__.py文件,那么它就是一个python包
- 创建package包,选择文件夹->新建->python软件包。
- 然后在包中创建my_package1.py和my_package2.py文件。分别写入以下内容:
my_package1.py:
def sum(x, y):
print(f"我是模块1中的sum函数,结果是:{x+y}")
return x + y
my_package2.py:
def sum(x, y):
print(f"我是模块2中的sum函数,结果是:{x + y}")
return x + y
导入并使用package包中的模块。
- 使用import导入使用
import package.my_package1
import package.my_package2
package.my_package1.sum(1, 2) # 我是模块1中的sum函数,结果是:3
package.my_package2.sum(1, 2) # 我是模块2中的sum函数,结果是:3
- 使用 from 包名 import 模块 使用:
from package import my_package1
from package import my_package2
my_package1.sum(1, 2) # 我是模块1中的sum函数,结果是:3
my_package2.sum(1, 2) # 我是模块2中的sum函数,结果是:3
- 还可以直接导入包中某个模块的某个函数:
from package.my_package1 import sum
sum(1, 2)
- 使用__all__控制包导出模块,与在模块中使用__all__的用法一致,在__init__.py配置希望使用 * 导入的时候,导出的部分模块。同理,这种方式方式只有在使用 * 导入的时候会限制,如果使用其他方式导入指定的模块依然是可以的。
__all__ = ["my_package1"] # 这样的话在外部使用*导入就只会导入my_package1模块
使用 * 导入,使用__all__未导出的模块会报错
下载第三方包
- 在控制台使用pip install 包名 ,安装需要用到的包
- 在python内部,通过右下角->解释器设置,点击加号,搜索要下载的包名也可以下载。