包介绍

包就是一个含有__init__.py文件的文件夹,文件夹内可以组织子模块或子包,包是可有可无的,但是为了方便统一处理,就放在一起处理

package/                #顶级包
├── __init__.py     
├── futures          #子包
│   ├── __init__.py
│   ├── process.py
│   └── thread.py
└── versions.py      #子模块

注意

  1. python3中,即使包下没有__init__.py文件,import 包仍然不会报错,而在python2中,包下一定要有该文件,否则import 包报错
  2. 包的目的只是被导入使用,不是为了运行。包只是模块的一种形式而已

包的使用

导入包

# 文件名:main  路径:''/Users/kevin/Desktop/python/'
from package import *

print(a1.a)
# from a1
print(a2.a)
# from a2
print(a3.a)
# from a3
# 文件名:__init__  路径:'/Users/kevin/Desktop/python/package/'
from . import a1, a2, a3

补充:

  1. 索要的名字就是包里面的__init__.py
  2. 好处在于__init__可以提前准备好可以使用的名字

绝对导入

# 文件名:main  路径:''/Users/kevin/Desktop/python/'
from package import a1, a2, a3

print(a1.a)
# from a1
print(a2.a)
# from a2
print(a3.a)
# from a3

补充:

  1. 忽略了__init__的存在,直接使用绝对导入
  2. 直接当成普通文件夹使用
Last modification:March 25, 2022
如果觉得我的文章对你有用,请随意赞赏