1.python自定义包的使用
包实际就是另一种模块(模块就是程序,如为了加法运算写了一个add.py模块以多次使用)。包可以包含多个模块。模块存储在一个.py的文件中,而包则是一个目录。要被Python视为包,目录下必须包含__init__.py。如果将模块加入包中,只需将模块放在包目录中即可,也可在包中嵌套其他包。下面为一个简单包的布局:
文件目录(unix路径名) | 描述 |
~/python/ | PYTHONPATH中的目录 |
~/python/drawing/ | 包目录(包drawing) |
~/python/drawing/__init__.py | 包代码(模块drawing) |
~/python/drawing/colors.py | 模块colors |
~/python/drawing/shapes.py | 模块shapes |
上述布局的包,如下导入语法皆为合法形式:
- import drawing #导入drawing包
- import drawing.colors #导入drawing包中的模块colors
- from drawing import shapes #导入模块shapes
执行了上述第一句语句后,便可以使用__init__中的内容,但无法使用colors与shapes模块内容
2.import A.b与from A import b的区别
import A.b与from A import b的区别就是上面第二条语句与第三条语句的区别。执行第二句语句后便可以使用colors模块,但必须通过全限定名drawing.colors。执行第三句语句后,便可使用简化名shapes来使用模块shapes。