广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python中__init__.py文件的作用
  • 846
分享到

Python中__init__.py文件的作用

2024-04-02 19:04:59 846人浏览 安东尼

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

摘要

目录1 init文件夹图标2 init.py导入包方式2.1 单个导入2.2 批量引入(定义__all__用来模糊导入)3 实例4 其他常见问题4.1 使用__init__.py文件

1 init文件夹图标

PyCharm中,带有__init__.py这个文件的目录被认为是python的包目录,与普通目录的图标有不一样的显示。
如下图所示,data目录没有__init__.py,其图标是个文件夹图标;而model下有_init__.py文件,其图标是一个包。所以__init__.pyPython中package的标识

2 init.py导入包方式

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

python在解释包的时候会给本模块下的所有文件建立一个索引放在当前路径下的__init__.py文件中,如果没有文件索引,即使import了指定的包,解释器还是找不到这个模块下的文件。如果一个文件夹下没有__init__.py文件,不会被当做一个模块。

2.1 单个导入

# package
# __init__.py
import re
import urllib
import sys
import os
# a.py
import package 
print(package.re, package.urllib, package.sys, package.os)

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

2.2 批量引入(定义__all__用来模糊导入)

我们在python中导入一个包时,实际上是导入了它的__init__.py文件,这样我们可以在__init__.py文件中批量导入我们所需要的模块,而不再需要一个一个的导入。

使用__init__.py中的重要变量__all__, 将模块全部导入。

# __init__.py
__all__ = ['os', 'sys', 're', 'urllib']
# a.py
from package import *

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

3 实例

假设我们的模块包的目录结构如下:

- mypackage
- - subpackage_1
- - - test11.py
- - - test12.py
- - subpackage_2
- - - test21.py
- - - test22.py
- - subpackage_3
- - - test31.py
- - - test32.py

直接导入:

如果我们使用最直接的导入方式,将整个文件拷贝到工程目录下,然后直接导入:

from mypackage.subpackage_1 import test11
from mypackage.subpackage_1 import test12
from mypackage.subpackage_2 import test21
from mypackage.subpackage_2 import test22
from mypackage.subpackage_3 import test31
from mypackage.subpackage_3 import test32

这样的话,查找的时候也会麻烦,此时__init__.py就起到了简化的作用。

init.py导入:

在mypackage/添加__init__.py程序,有三种写入方式。

from mypackage.subpackage_1 import test11
from mypackage import *
from mypackage.subpackage_1 import *

4 其他常见问题

4.1 使用__init__.py文件的优点

  • ①当目录下包含这个文件时,Python会将其当作成包目录,进而可以使用import xx.xx的方式导入目录下的文件或者模块。
  • ②使用__init__.py文件可以控制模块导入时的变量和内容,便于编程者的控制。(简化作用)

4.2 没有__init__.py文件的目录,使用import xx.xx会报错吗?

在较低的版本中(如3.2及以下),没有__init__.py文件的目录不能使用import xx.xx导入相关模块,但是后面的版本可以。

4.3 根据导入模块和主程序不同import方式

(1)如果导入的模块和主程序在同个目录下,直接import就行了

(2)如果导入的模块是在主程序所在目录的子目录下,可以在子目录中增加一个空白的__init__.py文件,该文件使得python解释器将子目录整个也当成一个模块,然后直接通过“import 子目录.模块”导入即可。

(3)如果导入的模块是在主程序所在目录的父目录下,则要通过修改path来解决,有两种方法:
①通过sys.path.append

import sys
sys.path.append('父目录的路径')  # '需要引用模块的地址'

来改变。python解释器就是通过sys.path去的寻找模块的。sys.path是一个列表 list ,它里面包含了已经添加到系统的环境变量路径。

【注意】:这种方法是运行时修改,脚本运行后就会失效。

②直接修改环境变量:在windows中是 “ set 变量=‘路径’ ” 例如:set PYTHONPATH=‘C:\test…’ 查看是否设置成功用echo %PYTHONPATH%,而且进到python解释器中查看sys.path,会发现已经有了新增加的路径了。这 种方式是永久的,一次设置以后一直都有效。在linux中是 “export 变量=‘路径’ “,查看是” echo $变量 "

到此这篇关于Python中__init__.py文件的作用的文章就介绍到这了,更多相关Python__init__.py文件 内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python中__init__.py文件的作用

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python中__init__.py文件的作用
    目录1 init文件夹图标2 init.py导入包方式2.1 单个导入2.2 批量引入(定义__all__用来模糊导入)3 实例4 其他常见问题4.1 使用__init__.py文件...
    99+
    2022-11-11
  • Python中__init__.py文件
    在Python中每次创建一个package后都会自动生成一个 __init__.py'空文件;该文件的作用是:声明我们当前创建的文件夹(包)是一个**Python模块**,在Python中每一个包中必须有一个__init__ .py文件. ...
    99+
    2023-01-31
    文件 Python py
  • Python中__init__.py文件的作用详解
    __init__.py 文件的作用是将文件夹变为一个Python模块,Python 中的每个模块的包中,都有__init__.py 文件。 通常__init__.py 文件为空,但是我们还可以为它增加其他...
    99+
    2022-06-04
    详解 作用 文件
  • 【Python】`__init__.py` 文件详解
    本文针对Python开发者, 详细描述了__init__.py文件在参与包、模块、命名空间导入/重命名/初始化时的使用方法,以及其中代码的执行机制。 本文使用边执行案例,边分析,边给结论的方法,描...
    99+
    2023-09-03
    python pycharm 开发语言
  • Python中__init__.py文件怎么写
    这篇“Python中__init__.py文件怎么写”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python中__init...
    99+
    2023-07-05
  • Python包中__init__.py文件怎么使用
    这篇文章主要讲解了“Python包中__init__.py文件怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python包中__init__.py文件怎么使用”吧!一、__init_...
    99+
    2023-07-02
  • 深入理解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文件简介二、__init__.py文件的使用案例2.1、没有__init__.py文件的目录,使用import xx.xx会报错吗?2.2、在__i...
    99+
    2022-11-11
  • 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中怎么调用py文件
    在python中调用py文件的方法:1.新建python项目;2.导入sys模块;3.使用sys.path.append()方法存放文件路径;4.通过import方法调用文件;具体步骤如下:首先,打开python,并新建一个python项目...
    99+
    2022-10-16
  • python如何在一个py文件中调用另一个py文件中的方法
    要在一个Python文件中调用其他Python文件中的方法,可以使用Python的模块导入功能。模块是一个包含Python定义和语句的文件,可以被其他Python程序导入和使用。 假设我们有两个Python文件,一个是file1.py,另一...
    99+
    2023-09-22
    python 开发语言
  • python中super().__init__()作用详解
    目录super().__ init__ ()有什么用?1、分别理解super()和 __ init __()1.1、super()1.2、__ init __()1.3、super(...
    99+
    2023-02-03
    python中super().__init__() python中super()
  • python中__init__的意义以及作用
    目录python 中 __init__的用法和含义补充:Python类中__init__()的作用python 中 __init__的用法和含义 python 中 __init__ ...
    99+
    2023-02-27
    python __init__用法 python __init__用法
  • Python的py文件中有哪些细节
    本篇内容介绍了“Python的py文件中有哪些细节”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!模块是一种以.py为后缀的文件,我们可以在....
    99+
    2023-06-02
  • python运行py文件的方法
    这篇“python运行py文件的方法”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“python运行py文件的方法”,小编整理了以下知识点,请大家跟着小编的步伐一步一步的慢慢理解,接下来就让我们...
    99+
    2023-06-06
  • Python制作小软件——3. 利用Py
    本篇博客衔接前面两篇博客: Python制作小软件——1. 安装并使用PyQt5进行界面设计、Python制作小软件——2. 实现界面中的退出功能。 本文将介绍如何使用Python编写后端的代码,实现我们前面做好的界面中的功能。...
    99+
    2023-01-31
    软件 Python Py
  • Python py文件生成的exe,打开
    1.在py文件程序结尾添加一行input("输入任意键结束")2.重新打包exe...
    99+
    2023-01-31
    文件 Python py
  • python中 __init__的意义及作用是什么
    这篇文章主要介绍“python中 __init__的意义及作用是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python中 __init__的意义及作用是什么”文章能帮助大...
    99+
    2023-07-05
  • python如何在一个py文件中获取另一个py文件中的值(一个或多个)
    目录如何在一个py文件中获取另一个py文件中的值(一个或多个)在一个py文件中调用另一个py文件中的变量一、目的二、解决方案三、实例演示如何在一个py文件中获取另一个py文件中的值(...
    99+
    2022-11-11
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作