一个功能可能会很复杂,也可能很简单,如果复杂,可能会使用几个.py
文件编写, 很简单的话,可能只使用一个.py
文件实现。 所以,当实现一个功能需要多个.py
文件的时候,就需要以包方式组织众多的模块。
另外,我们通常还需要有版本管理、依赖管理、支持的最低CPython的版本信息等等一些其他的信息。 所以,光有模块的概念是不够的,这就需要引入包的概念。
Python的包
有如下特点:
__init__.py
文件。Python
的包
示例:
执行到form packageName import moudleName
语句的时候。
执行到form packageName.moudleName import symbol
语句的时候。
执行到import packageName.moudleName
语句的时候。
执行到python -m packageName
命令的时候。
执行到python -m packageName.moudleName
命令的时候。
当模糊导入一个包
中的模块
的时候,如下:
from packageName import *
此时,这个*
到底是指哪些模块
呢?
这时候,就是看__init__.py
中有无__all__ = ['moudleName1', 'moudleName2', 'moudleNameN']
语句,该语句控制着该包
中 哪些模块
可以被其他模块
导入。
如果在__init__.py
中没有__all__ = ['moudleName1', 'moudleName2', 'moudleNameN']
语句,那么就表示这个包
中的所有模块
都可以被其他模块
导入。
如果一个包想要通过python -m packageName
命令执行,就必须在包
的根目录下包含一个__main__.py
文件。 您可以这样理解:一个包
中可以有很多个模块
,要将一个包
看作一个模块
,这个包
就需要一个入口模块
,这个入口模块
再管理这个包的其他模块
。
命令行工具 | |
Web开发框架 | |
HTTP请求 |