python init main_python 模块中的 __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 文件运行

一下是运行模块的结果,调到了run_cli 的函数进行解析运行

E:\Software\Software\Python2.7.11\Lib\site-packages>python -m robot --help

Robot Framework -- A generic test automation framework

Version:  3.0 (Python 2.7.11 on win32)

Usage:  robot [options] data_sources

or:  python -m robot [options] data_sources

or:  python path/to/robot [options] data_sources

or:  java -jar robotframework.jar [options] data_sources

。。。 。。。 。。。 。。。

Options

=======

-N --name name           Set the name of the top level test suite. Underscores

in the name are converted to spaces. Default name is

created from the name of the executed data source.

-D --doc documentation   Set the documentation of the top level test suite.

Underscores in the documentation are converted to

spaces and it may also contain simple HTML formatting

(e.g. *bold* and http://url/).

-M --metadata name:value *  Set metadata of the top level suite. Underscores

in the name and value are converted to spaces. Value

can contain same HTML formatting as --doc.

参考以下作者博客,敬谢:

https://www.cnblogs.com/alamZ/p/6943869.html

https://blog.zengrong.net/post/2192.html

python模块中的__all__属性

转自:http://blog.csdn.net/sxingming/article/details/52903377 python模块中的__all__属性,可用于模块导入时限制,如:from mod ...

python模块中__init__.py的作用

基本概念先上结论举例解释实验一:不包含__init__.py实验二:A中包含__init__.py实验三:A.A_A中也包含__init__.py进阶基本概念概念 解释import 即导入,方式就是在 ...

python模块中的特殊变量

37.模块的特殊变量:      显示模块中的变量 import s1 print(vars(s1))      1.__doc__:打印注释信息. #!/usr/bin/env python # _ ...

Python开发【第一篇】Python模块中特殊变量

模块中特殊变量 生产环境中,常用的就是__name__和__file__ __doc__ __package__ __cached__ __name__ __file__ 一. __doc__  #获 ...

嵌入Python系列 | 调用Python模块中无参数函数

开发环境 Python版本:3.6.4 (32-bit) 编辑器:Visual Studio Code C++环境:Visual Studio 2013 需求说明 在用VS2013编写的Win32程序 ...

嵌入Python | 调用Python模块中无参数的函数

开发环境 Python版本:3.6.4 (32-bit) 编辑器:Visual Studio Code C++环境:Visual Studio 2013 需求说明 在用VS2013编写的Win32程序 ...

RobotFramework中加载自定义python包中的library(一个py文件中有多个类)

结构如下: appsdk\ appsdk.py(这里面有多个类,包括appsdk,appsdksync等类) __init__.py ... ① 有个appsdk的文件夹(符合python包的定义) ...

随机推荐

NHibernate系列文章二十六:NHibernate查询之SQL Query查询(附程序下载)

摘要 NHibernate在很早的版本就提供了SQL Query(原生SQL查询),对于很复杂的查询,如果使用其他的查询方式实现比较困难的时候,一般使用SQL Query.使用SQL Query是基于 ...

php对csv文件的读取,写入,输出下载操作

在实际工作中,很多时候需要把网站上的一些数据下载到CSV文件里,方便以后查看. 亦或者是用CSV进行一些批量的上传工作. 这个时候我们就需要对CSV进行读写操作. 1.CSV的读取操作

PowerDesigner 表视图修改

PowerDesigner中Table视图同时显示Code和Name,像下图这样的效果: 实现方法:Tools-Display Preference 转自:http://www.shaoqun.com ...

Scala学习——基础篇

[笔记] 一.基础 1.变量val 标志符: 声明常量: 如,val answer = 1var 标志符:声明变量: 类型推断:变量的类型由scala根据初始化变量的表达 ...

Azure Storage用法:使用Blob Storage

Azure Storage 是微软 Azure 云提供的云端存储解决方案,当前支持的存储类型有 Blob.Queue.File 和 Table. 笔者在C# 消息队列-Microsoft Azure ...

[luogu4265][USACO18FEB]Snow Boots silver

题目大意 求出最少需要丢去多少双靴子才能到达终点. 解法 解法一: 看到数据的范围,非常清楚\(O(n^3)\)能过掉所有的数据,那么我们就果断暴力. 解法二: 比较容易会想到用DP做,我一开始定义\ ...

在Linux系统上卸载playOnLinux

1.remove just the playonlinux package itself. sudo apt-get remove playonlinux 2.remove the playonlin ...

Razor中的@:和语法

用Razor实现流畅编程 Razor尽量减少编写一个视图模板需要敲入的字符数,实现快速流畅的编程工作流.与大部分模板的语法不同,你不必在HTML中为了明确地标记出服务模块 的开始和结束而中断编程.Ra ...

docker 错误排查:无法进入容器.

docker 错误排查:无法进入容器. #docker exec -it 3c1d bash rpc error: code = 2 desc = oci runtime error: exec fa ...

win7仿win98电脑主题

http://ys-d.ys168.com/599631823/S7hMfgo3M382J764IOJ8/plus98_for_windows_7_by_ansonsterling.zip

你可能感兴趣的:(python,init,main)