美文网首页Python
2019-05-27 包与模块

2019-05-27 包与模块

作者: 沙滩印 | 来源:发表于2019-05-27 15:34 被阅读0次

举个例子,一个abc.py的文件就是一个名字叫abc的模块,一个xyz.py的文件就是一个名字叫xyz的模块。

现在,假设我们的abcxyz这两个模块名字与其他模块冲突了,于是我们可以通过包来组织模块,避免冲突。方法是选择一个顶层包名,比如mycompany,按照如下目录存放:

mycompany
├─__init__.py
├─ abc.py
└─ xyz.py
引入了包以后,只要顶层的包名不与别人冲突,那所有模块都不会与别人冲突。现在,abc.py模块的名字就变成了mycompany.abc,类似的,xyz.py的模块名变成了mycompany.xyz

请注意,每一个包目录下面都会有一个__init__.py的文件,这个文件是必须存在的,否则,Python就把这个目录当成普通目录,而不是一个包。__init__.py可以是空文件,也可以有Python代码,因为__init__.py本身就是一个模块,而它的模块名就是mycompany

类似的,可以有多级目录,组成多级层次的包结构。比如如下的目录结构:

mycompany
├─ web
│ ├─ __init__.py
│ ├─ utils.py
│ └─ www.py
├─ __init__.py
├─ abc.py
└─ xyz.py
文件www.py的模块名就是mycompany.web.www,两个文件utils.py的模块名分别是mycompany.utilsmycompany.web.utils

自己创建模块时要注意命名,不能和Python自带的模块名称冲突。例如,系统自带了sys模块,自己的模块就不可命名为sys.py,否则将无法导入系统自带的sys模块。
mycompany.web也是一个模块,请指出该模块对应的.py文件。

总结

模块是一组Python代码的集合,可以使用其他模块,也可以被其他模块使用。

创建自己的模块时,要注意:
模块名要遵循Python变量命名规范,不要使用中文、特殊字符;
模块名不要和系统模块名冲突,最好先查看系统是否已存在该模块,检查方法是在Python交互环境执行import abc,若成功则说明系统存在此模块。

相关文章

  • 2019-05-27 包与模块

    举个例子,一个abc.py的文件就是一个名字叫abc的模块,一个xyz.py的文件就是一个名字叫xyz的模块。 现...

  • 学习python3的野路子——导入模块与包

    模块与包[1] 模块与包的关系:模块可以属于包 导入模块(module)的方法:直接使用import后缀名为.py...

  • python命名规范

    Google Python命名规范 module_name, 模块 package_name, 包 模块与包 ...

  • 包与模块

    什么是包?什么是模块? 模块:python中每个python文件都是一个独立的模块,是较少的,独立的,功能近似的多...

  • 模块与包

    模块与包 控制模块被全部导入的内容 在模块中以下划线命名的变量或函数是不会被导入的 在模块中使用all来控制导入的...

  • 包与模块

    如果文件夹下没有 __init__.py 则该目录名被认为是模块。 导入包时都会执行一次包下的 __init__....

  • 模块与包

    模块 '''def func_a(x, y):return x ** y if name == 'main': ...

  • 包与模块

    在python中一个.py文件就是一个模块,使用模块既可以保证代码的重用性,又能增强程序的结构性和可维护性。对于内...

  • 模块与包

    在编程语言中,代码块、函数、类、模块,一直到包,逐级封装,层层调用。在Python中,一个.py文件就是一个模块,...

  • 模块与包

    PS: 每天学习整理一点点,巩固知识,加油! 一、模块 避免函数名、变量名重名 1 自定义模块 一个.py文件就是...

网友评论

    本文标题:2019-05-27 包与模块

    本文链接:https://www.haomeiwen.com/subject/bcuhtctx.html