Python : __init__.py的作用

简介:

一、__init__.py的作用:

        在使用PyDev插件,在Eclipse创建package时,会自动在package所在的目录自动创建一个__init__.py文件,且文件内容为空。这个文件有什么有呢?

       __init__.py的作用有如下几点:

       1. 相当于class中的def __init__(self):函数,用来初始化模块。

       2. 把所在目录当作一个package处理

       3. from-import 语句导入子包时需要用到它。 如果没有用到, 他们可以是空文件。

           如引入package.module下的所有模块
           from package.module import * 
           这样的语句会导入哪些文件取决于操作系统的文件系统. 所以我们在__init__.py 中加入 __all__变量. 

           该变量包含执行这样的语句时应该导入的模块的名字. 它由一个模块名字符串列表组成.


二、python在执行import语句时的步骤

    1:创建一个新的,空的module对象(它可能包含多个module);
    2:把这个module对象插入sys.module中
    3:装载module的代码(如果需要,首先必须编译)
    4:执行新的module中对应的代码。

    在执行第3步时,首先要找到module程序所在的位置,其原理为:如果需要导入的module的名字是module1,则解释器必须找到module1.py。

    它首先在当前目录查找,然后是在环境变量PYTHONPATH中查找。PYTHONPATH可以视为系统的PATH变量一类的东西,其中包含若干个目录。如果PYTHONPATH没有设定,或者找不到module1.py,则继续搜索与python的安装设置相关的默认路径,在Unix下,通常是/usr/lib64/python2.6/。

    事实上,搜索的顺序是:当前路径 (以及从当前目录指定的sys.path),然后是PYTHONPATH,然后是python的安装设置相关的默认路径。正因为存在这样的顺序,如果当前 路径或PYTHONPATH中存在与标准module同样的module,则会覆盖标准module。也就是说,如果当前目录下存在xml.py,那么执 行import xml时,导入的是当前目录下的module,而不是系统标准的xml。

目录
相关文章
|
10月前
|
数据管理 开发者 Python
揭秘Python的__init__.py:从入门到精通的包管理艺术
__init__.py是Python包管理中的核心文件,既是包的身份标识,也是模块化设计的关键。本文从其历史演进、核心功能(如初始化、模块曝光控制和延迟加载)、高级应用场景(如兼容性适配、类型提示和插件架构)到最佳实践与常见陷阱,全面解析了__init__.py的作用与使用技巧。通过合理设计,开发者可构建优雅高效的包结构,助力Python代码质量提升。
971 10
|
开发者 Python
【Python】已解决:TypeError: __init__() got an unexpected keyword argument ‘port’
【Python】已解决:TypeError: __init__() got an unexpected keyword argument ‘port’
2759 0
【Python】已解决:TypeError: __init__() got an unexpected keyword argument ‘port’
|
开发者 Python
Python中__init__.py文件的作用
`__init__.py`文件在Python包管理中扮演着重要角色,通过标识目录为包、初始化包、控制导入行为、支持递归包结构以及定义包的命名空间,`__init__.py`文件为组织和管理Python代码提供了强大支持。理解并正确使用 `__init__.py`文件,可以帮助开发者更好地组织代码,提高代码的可维护性和可读性。
1097 2
|
Python
深入解析 Python 中的对象创建与初始化:__new__ 与 __init__ 方法
深入解析 Python 中的对象创建与初始化:__new__ 与 __init__ 方法
232 1
|
Python
Python 中的 __init__
【8月更文挑战第29天】
429 7
|
Ubuntu Linux 数据安全/隐私保护
使用Cython库包对python的py文件(源码)进行加密,把python的.py文件生成.so文件并调用
本文介绍了在Linux系统(Ubuntu 18.04)下将Python源代码(`.py文件`)加密为`.so文件`的方法。首先安装必要的工具如`python3-dev`、`gcc`和`Cython`。然后通过`setup.py`脚本使用Cython将`.py文件`转化为`.so文件`,从而实现源代码的加密保护。文中详细描述了从编写源代码到生成及调用`.so文件`的具体步骤。此方法相较于转化为`.pyc文件`提供了更高的安全性。
2018 2
|
移动开发 Java 编译器
什么是pyc文件,把python的py文件编译成pyc文件,把pyc文件反编译成py文件。以及python编译的如何设置不生成pyc文件
什么是pyc文件,把python的py文件编译成pyc文件,把pyc文件反编译成py文件。以及python编译的如何设置不生成pyc文件
791 1
|
Python Windows
Python:执行py命令,提示: Can‘t find a default Python.
Python:执行py命令,提示: Can‘t find a default Python.
|
测试技术 Python
Python 类中__init__方法的作用
【8月更文挑战第24天】
907 0

推荐镜像

更多