Python3 包(Package)的使用
Python3 包(Package)
如果不同的人编写的模块名相同怎么办?为了避免模块名冲突,Python引入了按目录来组织模块的方法,称为包(Package)。
包是一种管理 Python 模块命名空间的形式,采用"点模块名称"。比如一个模块的名称是 A.B, 那么他表示一个包 A中的子模块 B 。
就好像使用模块的时候,你不用担心不同模块之间的全局变量相互影响一样,采用点模块名称这种形式也不用担心不同库之间的模块重名的情况。
使用PyCharm创建包
操作:右击->New->Python Package,如下图

创建成功后,包目录下面自动会创建一个__init__.py的文件,这个文件是必须存在的,否则,Python就把这个目录当成普通目录,而不是一个包。

__init__.py是初始化模块,from-import语句导入子包时需要它,可以在里面做一些初始化工作,或为空文件,或有有Python代码,__init__.py本身就是一个模块
__init__.py文件里定义的属性或方法能直接使用 顶层包.子包 的方式导入,
如在目录own的__init__.py文件中定义init_own()方法,直接使用own.init_own()调用
在这个包中有创建了新模块own.py
引入了包以后,只要顶层的包名不与别人冲突,那所有模块都不会与别人冲突。
现在,own.py模块的名字就变成了own.own
多级目录结构的包
包会有多级目录,组成多级层次的包结构。如下的目录结构,在own包下创建了包re
own是顶级包名,re是次级包名。

aa.py的模块名是own.re.aa
自定义模块时要注意命名,不能和Python自带的模块名称冲突。如,系统自带了sys模块,自己的模块就不可命名为sys.py,否则将无法导入系统自带的sys模块。

相关推荐
深度学习 -- 损失函数
深度残差网络(Deep Residual Networks (ResNets))
深度学习 -- 激活函数
神经网络训练 -- 调整学习速率
生成对抗网络(GAN)改进与发展
生成对抗网络(GAN)优点与缺点
生成对抗网络(GAN)的训练
生成对抗网络(GAN)基本原理
生成模型与判别模型