第十六章、包
1. 包
什么是包
包(Package) 是一种组织代码的方式,用于将相关的模块(Module)组织在一起。
作用:
通过包,可以更好地管理大型项目中的模块,避免命名冲突。
包的分类
- 常规包
- 包是一个文件夹(也叫目录)。
- 命名空间包(此课程不讲解)
- 包是一个或多个.zip结尾的压缩文件包。
常规包
常规包是一个文件夹,包内的文件夹称为子包,包内的.py 文件则称为包内的模块。
说明
包一定是模块,模块一定不是包。
常规包示例
以下描述一个包的组织结构
mypack/
├── chat_tools
│ ├── chat_menu.py
│ ├── dingding.py
│ ├── __init__.py
│ └── wechat.py
├── __init__.py
├── menu.py
└── work_tools
├── __init__.py
├── pycharm.py
└── wps.py
以下列出包文模块文件的名称和内容
文件: mypack/menu.py
def show_menu():
print('1) 打开钉钉')
print('2) 打开微信')
print('3) 打开PyCharm')
print('4) 打开Word')
print('5) 打开Excel')
文件: mypack/__init__.py
'''
这是一个自己创建的包
这个包包含两个子包:
chat_tools子包存放的是聊天工具相关的模块;
work_tools子包存放的是工作相关的模块;
'''
def show_describe():
'''此函数是包mypack内的函数'''
print('mypack包内函数的示例!')
文件: mypack/chat_tools/chat_menu.py
def show_chat_menu():
while True:
print('1) 启动钉钉')
print('2) 启动微信')
print('3) 启动wps里面的Excel')
print('0) 退出')
sel = int(input('请输入选项:'))
match sel:
case 1:
pass
case 2:
pass
case 3:
pass
case 0:
break
case _:
print('您的输入有误,请重新选择!')
文件: mypack/chat_tools/dingding.py
def start_dingding():
'钉钉的启动函数'
print('正在启动钉钉程序...')
文件: mypack/chat_tools/wechat.py
def start_wechat():
'微信的启动函数'
print('正在启动微信程序...')
文件: mypack/chat_tools/__init__.py
'''
这个是魏老师创建的聊天相关的子包
'''
文件: mypack/chat_tools/pycharm.py
'''
PyCharm启动相关的函数
'''
def start_pycharm():
'PyCharm的启动函数'
print('正在启动PyCharm程序...')
文件: mypack/chat_tools/wps.py
'''
金山的wps启动相关的函数
'''
__all__ = ['start_word']
def start_word():
'word的启动函数'
print('正在启动wps的word程序...')
def start_excel():
'excel的启动函数'
print('正在启动wps的excel程序...')
文件: mypack/chat_tools/__init__.py
'''
这个是魏老师创建的办公相关的子包
'''
__all__ = ['pycharm', 'wps']