目录
一、看一个应用场景
二、基本介绍
三、快速入门
四、注意事项和使用细节
1、导入包的基本语法
2、导入包的模块的指定函数、类、变量
3、__init__.py 通过__all__控制允许导入的模块
4、包可以有多个层级
5、快捷键 alt+enter/shift+alt+enter 可以快捷的导入
6、说明:使用哪一种导入方式,根据业务需求来确定即可
文档:5. 导入系统 — Python 3.12.4 文档
一、看一个应用场景
一个实际的项目,可能需要很多的模块,当模块文件越来越多,如果我们将所有的模块文件都放在同一个文件夹,就会带来很多问题,不利于管理,怎么办?--> 包
二、基本介绍
1、从结构上看,包就是一个文件夹,在该文件夹下包含一个__init__.py文件,该文件夹可以用于包含多个模块文件,从逻辑上看,包可以视为模块集合
2、包的结构形式示意图
3、__init__.py:控制包的导入操作
4、导入包&使用的基本语法
导入:import 包名.模块
使用:包名.模块.功能
三、快速入门
快速入门案例
1)创建一个包(hsp_package)
2)在该包下,创建两个模块,module01.py和module02.py,分别编写hi()和ok()函数
3)编写文件 use_.py 导入该包下的两个模块,并调用 hi()和ok()
注意:在创建包的时候,要选择Python package 会自动生成__init __.py文件
# module01.py
def hi():print("module01,hi()")
# module02.py
def ok():print("module02,0k()")
# 导入包下的模块
import hsp_package.module01
import hsp_package.module02# 使用导入的模块
hsp_package.module01.hi()
hsp_package.module02.ok()
四、注意事项和使用细节
1、导入包的基本语法
import 包名.模块
from 包名 import 模块
1)上面是两种导入包基本方式
2)import 包名.模块,在使用时,包名.模块.功能
3)from 包名 import 模块,在使用时,模块.功能,不需要带包名
# from 包名 import 模块,在使用时,模块.功能,不需要带包名
from hsp_package import module01
module01.hi()
2、导入包的模块的指定函数、类、变量
from 包名.模块 import 函数、类、变量
1)上面是导入包的模块的指定函数、类、变量
2)在使用时,直接调用功能
3)from 包名.模块 import * :表示导入包的模块的所有功能
# 导入包的模块的指定函数、类、变量
from hsp_package.module01 import hi
hi()
3、__init__.py 通过__all__控制允许导入的模块
1)在__init__.py中增加__all__=[允许导入的模块列表]
2)针对from 包 import * 方式生效,对 import xx 方式不生效
# __init__.py
# 控制包允许导入的模块
__all__=['module02']
from hsp_package import *module02.ok()
# 引入限制了module01模块导入,因此不能使用
# module01.hi()
# __all__=['module02']不能限制下面的导入形式
import hsp_package.module01
import hsp_package.module02hsp_package.module02.ok()
hsp_package.module01.hi()
4、包可以有多个层级
1)包下还可以再创建包
2)在使用时,通过 . 来确定层级关系
# hsp_package/hsp_package2/module03.py
def cal(n1,n2):print(f"结果是->{n1+n2}")
# use_.py
# 包可以有多个层级
# 方式1
import hsp_package.hsp_package2.module03
# 使用
hsp_package.hsp_package2.module03.cal(10,30)
# use_.py
# 方式2
from hsp_package.hsp_package2 .module03 import cal
cal(60,90)
# 方式3
from hsp_package.hsp_package2 import module03
module03.cal(10,30)
5、快捷键 alt+enter/shift+alt+enter 可以快捷的导入
1)alt+enter,提示选择解决方案
2)shift+alt+enter,直接导入