返回顶部
首页 > 资讯 > 后端开发 > Python >Python __init__.py 文
  • 112
分享到

Python __init__.py 文

Pythonpy 2023-01-31 01:01:27 112人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

__init__.py的主要作用是:1. python中package的标识,不能删除2. 定义__all__用来模糊导入3. 编写Python代码(不建议在__init__中写python模块,可以在包中在创建另外的模块来写,尽量保证__

__init__.py的主要作用是:

1. python中package的标识,不能删除

2. 定义__all__用来模糊导入

3. 编写Python代码(不建议在__init__中写python模块,可以在包中在创建另外的模块来写,尽量保证__init__.py简单)


__init__.py 文件的作用是将文件夹变为一个Python模块,Python 中的每个模块的包中,都有__init__.py 文件。

通常__init__.py 文件为空,但是我们还可以为它增加其他的功能。我们在导入一个包时,实际上是导入了它的__init__.py文件。这样我们可以在__init__.py文件中批量导入我们所需要的模块,而不再需要一个一个的导入。


1240


1240

注意这里访问__init__.py文件中的引用文件,需要加上包名。

__init__.py中还有一个重要的变量,__all__, 它用来将模块全部导入。


1240


1240

这时就会把注册在__init__.py文件中__all__列表中的模块和包导入到当前文件中来。

可以了解到,__init__.py主要控制包的导入行为。要想清楚理解__init__.py文件的作用,还需要详细了解一下import语句引用机制:

导入包

多个相关联的模块组成一个包,以便于维护和使用,同时能有限的避免命名空间的冲突。一般来说,包的结构可以是这样的:


1240

有以下几种导入方式:


1240

使用from语句可以把模块直接导入当前命名空间,from语句并不引用导入对象的命名空间,而是将被导入对象直接引入当前命名空间。


应用举例:

程序结构:

-project

-data

-src

-filterCorpus.py

-translateMonolingual.py

问题描述:在translateMonolingual.py中引用filterCorpus.py中的函数fun1


1240

即使translateMonolingual.py和filterCorpus.py在同一文件夹下,若translateMonolingual.py中直接引用import filterCorpus会出错

。这是因为python3需要绝对路径引用,从project的根位置开始指明被引模块的位置。通用格式为:from directory import module。如果module存在于directory1下的directory2,那么建议写成from directory1.directory2 import module

为什么需要__init__.py

__init__.py文件用于组织包(package)。这里首先需要明确包(package)的概念。什么是包(package)?简单来说,包是含有python模块的文件夹。一个python模块(module)为一个py文件,里面写有函数和类。包(package)是为了更好的管理模块(module),相当于多个模块的父节点。

当文件夹下有__init__.py时,表示当前文件夹是一个package,其下的多个module统一构成一个整体。这些module都可以通过同一个package引入代码中。

__init__.py文件怎么写

可以什么都不写,但如果想使用from package1 import *这种写法的话,需要在__init__.py中加上:

__all__= ['file1','file2']#package1下有file1.py,file2.py

python中__init__.py文件的作用实例

python的每个模块的包中,都有一个__init__.py文件,有了这个文件,我们才能导入这个目录下的module。

那么,__init__.py还有什么别的功能呢?

其实,__init__.py里面还是可以有内容的,我们在导入一个包时,实际上导入了它的__init__.py文件。

我们可以再__init__.py文件中再导入其他的包,或者模块。


1240

这样,当我们导入这个包的时候,__init__.py文件自动运行。帮我们导入了这么多个模块,我们就不需要将所有的import语句写在一个文件里了,也可以减少代码量。

不需要一个个去导入module了。

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

from PackageName import *

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

#文件 __init__.py

__all__= ["Module1","Module2","subPackage1","subPackage2"]


--结束END--

本文标题: Python __init__.py 文

本文链接: https://lsjlt.com/news/183182.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python __init__.py 文
    __init__.py的主要作用是:1. Python中package的标识,不能删除2. 定义__all__用来模糊导入3. 编写Python代码(不建议在__init__中写python模块,可以在包中在创建另外的模块来写,尽量保证__...
    99+
    2023-01-31
    Python py
  • Python包和__init__.py文
            在eclipse中用pydev开发python脚本时,当新建一个package时,系统会自动地生成一个空的__init__.py文件。如果把这个文件删掉,那么你会发现包图标自动变为文件夹图标。这是怎么回事呢?        ...
    99+
    2023-01-31
    Python py
  • Python中__init__.py文件
    在Python中每次创建一个package后都会自动生成一个 __init__.py'空文件;该文件的作用是:声明我们当前创建的文件夹(包)是一个**Python模块**,在Python中每一个包中必须有一个__init__ .py文件. ...
    99+
    2023-01-31
    文件 Python py
  • 【Python】`__init__.py` 文件详解
    本文针对Python开发者, 详细描述了__init__.py文件在参与包、模块、命名空间导入/重命名/初始化时的使用方法,以及其中代码的执行机制。 本文使用边执行案例,边分析,边给结论的方法,描...
    99+
    2023-09-03
    python pycharm 开发语言
  • Python中__init__.py文件的作用
    目录1 init文件夹图标2 init.py导入包方式2.1 单个导入2.2 批量引入(定义__all__用来模糊导入)3 实例4 其他常见问题4.1 使用__init__.py文件...
    99+
    2024-04-02
  • Python中__init__.py文件怎么写
    这篇“Python中__init__.py文件怎么写”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python中__init...
    99+
    2023-07-05
  • 深入理解Python中__init__.py文件
    目录1. 简介1.1 模块(Module)和包(Package)的概念1.2 __init__.py文件简介2. __init__.py内容写法2.1 __init__.py文件内容...
    99+
    2023-02-09
    Python中__init__.py
  • Python中__init__.py文件的作用详解
    __init__.py 文件的作用是将文件夹变为一个Python模块,Python 中的每个模块的包中,都有__init__.py 文件。 通常__init__.py 文件为空,但是我们还可以为它增加其他...
    99+
    2022-06-04
    详解 作用 文件
  • Python包中__init__.py文件怎么使用
    这篇文章主要讲解了“Python包中__init__.py文件怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python包中__init__.py文件怎么使用”吧!一、__init_...
    99+
    2023-07-02
  • Python模块包中__init__.py文件功能分析
    本文实例讲述了Python模块包中__init__.py文件功能。分享给大家供大家参考,具体如下: 用django做开发已经一年多的时间,但基本没注意python模块中__init__.py文件存在的意义,...
    99+
    2022-06-04
    包中 模块 功能
  • 在__init__.py中找不到引用“ xxx”-Python / Pycharm
    复现论文时,作者给出源代码,我从guthub上下载下载放在pycharm中泡,但是显示很多地方都在__init__.py中找不到引用 找了很多方法,最终:需要在被引用的包中添加__init__.py文件【不需要在新建的文件中写什么】 ...
    99+
    2023-10-18
    pycharm ide python
  • Python包中__init__.py文件的作用与用法实例详解
    目录前言一、__init__.py文件简介二、__init__.py文件的使用案例2.1、没有__init__.py文件的目录,使用import xx.xx会报错吗?2.2、在__i...
    99+
    2024-04-02
  • 【Python】Python 包 ② ( 自定义 Python 包 | 导入并调用自定义 Python 包 | `__init__.py` 定义 `__all__` 变量 )
    文章目录 一、自定义 Python 包1、PyCharm 中创建 Python 包2、自定义 Module 模块代码3、`__init__.py` 代码 二、导入并调用自定义 Python...
    99+
    2023-10-23
    python 开发语言 自定义包 导入自定义包 __init__.py 原力计划
  • PYTHON 中的__init__()方
    在类定义时,self和__init__会时常用到。 self 参数,它在所有的方法声明中都存在。它代表实例对象本身,当你用实例调用方法时,由解释器悄悄地传递给方法的,所以,你不需要自己传递self 进来,因为它是自动传入的。 ...
    99+
    2023-01-31
    PYTHON
  • python怎么读取py文件
    读取方法:使用with关键字打开example.py文件,并读取文件内容。读取完成后,我们将文件内容存储在变量content中,并将其打印出来。 在Python中,要读取一个.py文件...
    99+
    2024-04-02
  • python怎么调用py文件
    通过 import 语句导入 python 文件,具体步骤为:1. 创建要导入的 python 文件,定义函数或类;2. 在主 python 文件中使用 import 语句导入模块;3....
    99+
    2024-05-22
    python
  • python怎么建立py文件
    在 python 中创建 .py 文件的步骤:打开文本编辑器(例如 notepad、textmate 或 sublime text)。创建新文件并输入 python 代码,注意缩进和语法...
    99+
    2024-05-05
    python sublime notepad
  • python怎么创建py文件
    在 python 中创建 .py 文件可通过以下步骤:使用文本编辑器或 ide 创建新文件。输入 python 代码。以 ".py" 扩展名保存文件(例如 "my_script.py")...
    99+
    2024-05-05
    python sublime pycharm notepad
  • python怎么删除py文件
    在 python 中删除.py文件可以通过导入os模块并使用remove()函数来实现,详细步骤包括:1.导入os模块;2.提供要删除的文件路径;3.处理文件不存在或无法访问的异常;4....
    99+
    2024-05-05
    python
  • 关于python中 __init__.p
    python   __init__.py  常见的情况中,我们将自己写好的代码转化为函数的话去调用的话,都是事先写好一个.py结尾的文件,将这个文件copy到当前目录下,或者是在python的sys.path中事先定义好的路径中去。之后在另...
    99+
    2023-01-31
    python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作