什么是包
包就是把解决一类问题的模块放在同一个文件目录里,这个文件目录就叫做包
包是一种通过使用‘.模块名’来组织python模块名称空间的方式。
包的导入方法 – import
1 | soft/ |
- 最外层是soft软件工程目录
- bin 和 core 是两个包
- bin 下有着start.py 程序入口文件
- core 下有着Manage模块,里面带有一个login( )方法
- 整个目录还有一个cook.py文件 在soft目录下
1 | # 想要在start.py 使用 Manage的login()方法 |
关于包相关的导入语句也分为import和from … import …两种,但是无论哪种,无论在什么位置,在导入时都必须遵循一个原则:凡是在导入时带点的,点的左边都必须是一个包,否则非法。可以带有一连串的点,如,soft.core.Manage但都必须遵循这个原则。
对于导入后,在使用时就没有这种限制了,点的左边可以是包,模块,函数,类(它们都可以用点的方式调用自己的属性)。
from … import …
1 | import os |
1 | # 在core包下的文件引入其他包中的方法或者配置 |
需要注意的是from后import导入的模块,必须是明确的一个不能带点,否则会有语法错误
可以用import导入内置或者第三方模块(已经在sys.path中),但是要绝对避免使用import来导入自定义包的子模块(没有在sys.path中),应该使用from… import …的绝对或者相对导入,且包的相对导入只能用from的形式。