`
swingfly
  • 浏览: 53608 次
  • 性别: 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文件存在的意义,偶然看到对它的介绍吓一大跳,这个...

    discussion.zip Python关于import的实验(10) 利用__init__.py文件将变量和包下的模块作为包的属性

    总结来说,本实验的重点在于理解`__init__.py`文件在创建Python包中的作用,以及如何通过它来定义和组织包的公共属性和接口。通过这样的实践,开发者能够更好地管理和组织大型项目,提高代码的可读性和可维护性。在...

    Python包,__init__.py功能与用法分析

    本文将深入探讨Python包的概念、功能,以及`__init__.py`文件的作用和用法。 ### 包的概念与作用 包是Python中的一个重要的组织模块的方式,它本质上是一个包含`__init__.py`文件的文件夹。通过创建包,我们可以将...

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

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

    python基础之包的导入和__init__.py的介绍

    假设想要在 `lib` 包中使用 `from lib import *` 的方式导入所有子模块,则可以在 `lib/__init__.py` 中定义如下内容: ```python __all__ = ["mod2", "mod3", "sub"] ``` 这表示当使用 `from lib import *` 时,...

    #深入理解# PyQt5库下的 __init__.py 文件

    `__init__.py` 文件在Python包中起着标识作用,表明其所在的文件夹是一个Python包,这样Python解释器在导入时就能识别并处理这个包。在PyQt5库中,`__init__.py` 可能包含了对其他模块的导入、设置、注册等操作,以...

    python学习记录(包)

    2. **添加`__init__.py`文件:** 在这个目录中添加一个`__init__.py`文件,这样Python就会将这个目录视为一个包。 3. **添加模块:** 在包目录中添加你需要的Python模块文件。 #### 四、如何使用包 1. **导入整个...

    Python中_name==_main的解释

    例如,在一个名为`a`的包中,有子包`b`,其中包含`c.py`和`__init__.py`文件。若在这些文件中都打印出`__name__`的值,可以清晰地展示出它们之间的层次关系。 - 当我们通过命令行执行`python -c "import a.b.c"`时...

    第十天 06包的使用【千锋Python人工智能学院】1

    `__init__.py`文件在包中的作用至关重要: - **标识包**:当一个文件夹包含`__init__.py`(可以是空文件)时,Python识别其为一个包,允许导入其中的模块。 - **初始化**:`__init__.py`可以包含任何Python代码,当...

    python 包引用的问题

    这个特殊的`__init__.py`文件告诉Python,这个文件夹应该被视为一个包。`__init__.py`可以是空文件,也可以包含初始化代码。例如,我们创建一个名为`mypackage`的包,其结构可能是这样的: ``` mypackage/ __init...

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

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

    python基础3day03.txt

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

    第10章 模块.pptx

    - **跨包引用**:如果需要从一个包中的模块引用另一个包中的模块,可以在包的`__init__.py`文件中通过修改`sys.path`来解决: ```python import sys sys.path.append('..') ``` #### 五、模块的发布 模块发布...

    第10.6节 Python包的概念.rar

    - 创建一个新目录,并在其中创建一个名为`__init__.py`的文件,这个目录就变成了一个Python包。 - 如果需要在包内创建子包,只需在子目录中也放置一个`__init__.py`文件。 3. **导入包**: - 使用`.`操作符来...

    MySQLdb,python

    在MySQLdb这个包中,`__init__.py`通常包含了导入和初始化其他模块的代码,使用户可以通过`import MySQLdb`的方式来使用整个库。这个文件可能定义了一些基本的配置,以及对其他子模块的导出,比如连接对象、游标对象...

    python import

    `__init__.py`文件的存在标识了`my_project`、`folder1`和`folder2`是Python包,使得它们的成员可以被导入。 4. **添加路径到sys.path**: 如果你需要导入的模块位于`sys.path`之外,可以通过在程序开始时动态...

    python基础-Package基础用法.docx

    这个特殊的`__init__.py`文件使得该文件夹被视为一个Python包,可以被导入并作为程序的一部分来使用。 在提供的例子中,我们看到一个名为"sound"的顶级包,它包含了三个子包:`formats`、`effects`和`filters`。每...

    py2exe_win python代码转为exe文件

    - `__init__.py`: 通常在Python包中用于标识该目录为一个模块。 - `read.t`: 可能是项目的帮助文档或者其他文本资源文件。 - `要求.txt`: 可能列出了项目运行所需的操作系统或软件环境要求。 - `wmain.ui`: Qt ...

Global site tag (gtag.js) - Google Analytics