`
swingfly
  • 浏览: 52620 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Python包中__init__.py

阅读更多

在python模块的每一个包中,都有一个__init__.py文件,例如python2.5中的xml模块的目录结构就是:

xml

|_dom

|_etree

|_parsers

|_sax

|_ __init__.py

这个文件定义了包的属性和方法。例如,xml.dom 包含了 Node 类,它在xml/dom/__init__.py 中有所定义。当你将一个包作为模块导入(比如从 xml 导入 dom )的时候,实际上导入了它的 __init__.py 文件。

一个包是一个其中带有特殊文件 __init__.py 的目录。__init__.py 文件定义了包的属性和方法。其实它可以什么也不定义;可以只是一个空文件,但是必须要存在。如果 __init__.py 不存在,这个目录就仅仅是一个目录,而不是一个包,它就不能被导入或者包含其它的模块和嵌套包。

__init__.py 中还有一个重要的变量,叫做 __all__。我们有时会使出一招“全部导入”,也就是这样:

 

from xml import *
 

这时 import 就会把注册在包 __init__.py 文件中 __all__ 列表中的子模块和子包导入到当前作用域中来。比如:

#文件 __init__.py
__all__ = ["dom", "parsers", "sax", "etree"]
 
分享到:
评论

相关推荐

    Python模块包中__init__.py文件功能分析

    本文实例讲述了Python模块包中__init__.py文件功能。分享给大家供大家参考,具体如下: 用django做开发已经一年多的时间,但基本没注意python模块中__init__.py文件存在的意义,偶然看到对它的介绍吓一大跳,这个...

    Python中__init__.py文件的作用详解

    __init__.py 文件的作用是将文件夹变为一个Python模块,Python 中的每个模块的包中,都有__init__.py 文件。 通常__init__.py 文件为空,但是我们还可以为它增加其他的功能。我们在导入一个包时,实际上是导入了它的...

    浅谈Python中文件夹和python package包的区别

    1.原来在python模块的每一个包中,都有一个__init__.py文件(这个文件定义了包的属性和方法)然后是一些模块文件和子目录,假如子目录中也有__init__.py那么它就是这个包的子包了。 当你将一个包作为模块导入(比如从...

    python基础3day03.txt

    day02回顾 模块 os.py sys模块 sys.path 自定义模块 ... 包的 __init__.py 内的 __all__ 列表 作用: 用来记录此包中有哪儿些子包或模块在用from 包 import * 语句导入时是否被调导入 说明:

    robot_control_hiwin_ros

    如何使用模块 from control_node import HiwinRobotInterface 为另一个软件包制作Python模块 Catkin设定 取消注释CMakeLists.txt中的以下行 catkin_python_setup() ... 包中的py ## ! DO NOT MANUALLY INVOKE THIS s

    如何将两个rosbag包合并或者提取rosbag包中某些话题到一个rosbag里

    代码叫做merge_bag.py 运行的时候 python merge_bag.py -v 1028msf.bag msf.bag vinReNoOutlier...python merge_bag.py -v –topics ‘/aft_mapped_to_init /gnss/data /imu/data vinReNoOutlier’ msf.bag 2019-10-28-

    Python导入模块包原理及相关注意事项

    包的使用 1.首次导入模块发生的事情3件事情 先产生一个执行文件的名称空间: 1.创建模块文件的名称空间 2.执行模块文件中的代码 将产生的名字放...2.执行包下面的__init__.py文件中的代码 将产生的名字放入包下面的

    Python 读取位于包中的数据文件

     __init__.py  somedata.dat  spam.py 现在假设spam.py文件需要读取somedata.dat文件中的内容。你可以用以下代码来完成: # spam.py import pkgutil data = pkgutil.get_data(__package__, 'somedata.dat') ...

    api-l3x-in:https:api.l3x.in源代码

    每个应用程序都位于文件夹下的专用Python包中。 堆栈软件包包括部署所需的CDK代码(位于__init__.py )和.py Lambda文件。项目代码结构.│ # CLI utilities├── bin/│├── lib/│ │ # Main CDK application│...

    【Demo】Python语音识别项目.zip

    项目简介 本项目使用 python3.5,包管理使用 pip3.5,用 pyaudio ...UnitTest 包中为各模块的单元测试文件, 在项目根目录下执行命令 python3.5 -m nose -vs --with-coverage 将自动执行单元测试并输出结果和覆盖率。

    semantic-release-replace-plugin:使用语义发布更新版本字符串

    下面的示例使用此插件演示在Python包中使用语义释放的情况,其中__VERSION__在根__init__.py文件中定义。 { " plugins " : [ " @semantic-release/commit-analyzer " , [ " @google/semantic-release-replace-...

    python实现的离线pdf转word小工具

    代码使用需要pdf2docx三方包实现,为了在前台打印更多日志,将三方包中的Converter类进行了改进,将def __init__(self, pdf_file:str, password:str=None) 参数增加了func回调函数def __init__(self, pdf_file:str, ...

    python基础教程:包的创建及导入.pdf

    python基础教程:包的创建及导⼊ 基础教程:包的创建及导⼊...这是你的包的可能结构(以分层⽂件系统的形式表⽰): __init__.py Initialize the sound package formats/ Subpackage for file format conversions __ini

    rhel6 86_64 使用CentOS yum源

    安装yum,必须按照顺序... file /usr/lib/python2.6/site-packages/yum/__init__.py from install of yum-3.2.29-40.el6.centos.noarch conflicts with file from package yum-3.2.27-14.el6.noarch ……其它输出略……

    MultimediaX:NTUT多媒体技术和应用程序类中的类项目的集合

    (只是为了好玩的XD) 请根据日期将您每次编写的代码打包到一个单独的python包中。 每个程序包必须以“ d” + date(MMDD)命名。 每个软件包都必须只有一个名为“ run”的顶级入口点函数。 如果该程序包包含多个子...

    opencv-x:NTUT Open-CV类中的类项目的集合

    请根据日期将您每次编写的代码打包到一个单独的python包中。 每个程序包必须以“ d” + date(MMDD)命名。 每个软件包都必须只有一个名为“ run”的顶级入口点函数。 如果该程序包包含多个子程序包,则需要遵循以下...

    假设检验代码matlab-JMLR2018:在Matlab,R和Python中提交论文“关于特征选择的稳定性”的实验代码

    假设检验代码matlab JMLR2018 此文件夹包含以下论文的材料(接受较小的更正,即将...python稳定性包中提供的所有工具 本文第7.1节中的实验代码 R文件夹包括: python稳定性包中提供的所有工具 本文第7.2节中的实验代码

    如何将PySpark导入Python的放实现(2种)

    方法一 使用findspark 使用pip安装findspark: pip install findspark 在py文件中引入findspark: ...把预编译包中的Python库文件添加到Python的环境变量中 export SPARK_HOME=你的PySpark目录 export PYTHONP

Global site tag (gtag.js) - Google Analytics