包介绍
包就是一个含有__init__.py文件的文件夹,文件夹内可以组织子模块或子包,包是可有可无的,但是为了方便统一处理,就放在一起处理
package/ #顶级包├── __init__.py├── futures #子包│ ├── __init__.py│ ├── process.py│ └── thread.py└── versions.py #子模块
注意
在
python3中,即使包下没有__init__.py文件,import包仍然不会报错,而在python2中,包下一定要有该文件,否则import包报错包的目的只是被导入使用,不是为了运行。包只是模块的一种形式而已
包的使用
导入包
# 文件名:main 路径:''/Users/kevin/Desktop/python/'from package import *print(a1.a)# from a1print(a2.a)# from a2print(a3.a)# from a3
# 文件名:__init__ 路径:'/Users/kevin/Desktop/python/package/'from . import a1, a2, a3

补充:
索要的名字就是包里面的
__init__.py好处在于
__init__可以提前准备好可以使用的名字
绝对导入
# 文件名:main 路径:''/Users/kevin/Desktop/python/'from package import a1, a2, a3print(a1.a)# from a1print(a2.a)# from a2print(a3.a)# from a3
补充:
- 忽略了
__init__的存在,直接使用绝对导入 - 直接当成普通文件夹使用
