__init__.py __main__.py

python中文件夹想作为一个模块被引用,则在文件夹内必须要包含 __init__.py 文件,即使此文件为空。

如果此模块想要运行则必须要包含 __main__.py 文件。接下来说下两个文件起到的作用。

拿 robotframework 模块下的文件举例:

__init__.py里面一般包含了需要引用的模块

1 from robot.rebot import rebot, rebot_cli
2 from robot.run import run, run_cli
3 from robot.version import get_version

__all__ 参数意为导出包内模块,以下连接可以参考,不包含在__all__ 列表的模块不可被其他程序引用

此处 __version__ 应为一个系统定义的名字, 可在系统内引用

from robot.rebot import rebot, rebot_cli
from robot.run import run, run_cli
from robot.version import get_version


__all__ = ['run', 'run_cli', 'rebot', 'rebot_cli']
__version__ = get_version()

 对于 __main__.py 我的理解是一个模块的入口函数执行模块

import sys

# Allows running as a script. __name__ check needed with multiprocessing:
# https://github.com/robotframework/robotframework/issues/1137
if 'robot' not in sys.modules and __name__ == '__main__':
    import pythonpathsetter

from robot import run_cli


run_cli(sys.argv[1:])

当我们执行模块代码时首先会加载__init__.py 定义的引入模块,然后进入__mian__.py 文件运行

posted @ 2019-05-14 18:28  車輪の唄  阅读(12)  评论(0编辑  收藏  举报  来源