Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >python中的__init__.py作用

python中的__init__.py作用

作者头像
Defu Li
发布于 2019-12-19 03:40:12
发布于 2019-12-19 03:40:12
2.8K0
举报
文章被收录于专栏:斜述视角斜述视角

Python中,我们经常会看到一个文件夹下有若干个py文件,其中总有那么一个py文件在命名上很特别,就是__init__.py。该py文件前后各是两个下划线,这是Python官方文档的规定,这样命名是有特殊功能的。

__init__.py主要是用来初始化Python包的(package)。在这里简单介绍一下Python中的包和模块的概念。

Python包(package),是一个目录,该目录下包括了__init__.py文件,以及其他功能的py文件。

Python模块(module),一个py文件就是一个module。

有两个同级目录test1和test2,test1目录下有test11.py,test2目录下有test22.py。其中test11.py中包含defuli()函数。如果要想在test22.py中调用defuli()函数,首先需要在test22.py中导入test1包。

from test1 import test11

test11.defuli() # 调用即可

在Python3.3以后,不需要在test1目录下加入__init__.py也可以认为test1为一个包。在Python3.3以前,需要在test1下新建__init__.py,用以表明test1为一个包。

如果test1目录下,有很多py文件,比如有test11.py,test12.py,test13.py等。我们在test22.py中导入test1时,采用如下代码。

from test1 import *

默认是导入test1目录下所有的py文件,也就是所有的模块。但是如果我们想只导入test11.py,不导入test12.py和test13.py,此时应该在test1目录下新建__init__.py文件,并加入如下代码。

__all__ = ['test11']

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-12-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 斜述视角 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
一文教你看懂__init__.py这个被大家轻视的文件
没有__init__.py,Python 不会认为这是一个包,也就无法通过import package_name的方式引入它。
码匠er
2025/05/15
950
一文教你看懂__init__.py这个被大家轻视的文件
Python __init__.py 文
3. 编写Python代码(不建议在__init__中写python模块,可以在包中在创建另外的模块来写,尽量保证__init__.py简单)
py3study
2020/01/15
1.4K0
Python: __init__.py 作用
__init__.py 主要是用来初始化 Python 包(packages)的,它在模块加载最开始运行。 以下目录结构为示例:
Python知识大全
2020/02/13
1.2K0
Python __init__.py 作用详解
__init__.py 文件的作用是将文件夹变为一个Python模块,Python 中的每个模块的包中,都有__init__.py 文件。
风之随想
2020/07/25
23.4K0
Python中`__init__.py`文件的作用是什么?
在 Python 中,__init__.py 文件是一个特殊文件,在包中扮演着几个重要的角色。在本教程中,我们将解释…
云云众生s
2024/04/16
2610
Python中__init__.py文件
在Python中每次创建一个package后都会自动生成一个 __init__.py'空文件;该文件的作用是:声明我们当前创建的文件夹(包)是一个**Python模块**,在Python中每一个包中必须有一个__init__ .py文件. 一般这个文件都为空,只有我们在这个包下面创建多个.py文件后,当我们想使用该包下的某一模块,我们则需要在__init__.py文件中通过 __ all__ = [ '模块名'] 指定我们需要导入的模块, Python中导包其实就是导入指定包文件中的__init__.p
py3study
2020/01/09
1K0
Python模块
模块:在Python中有一个概念叫做模块(module),这个和C语言中的头文件以及Java中的包很类似,比如在Python中要调用sqrt函数,必须用import关键字引入math这个模块,下面就来了解一下Python中的模块。说的通俗点:模块就好比是工具包,要想使用这个工具包中的工具(就好比函数),就需要导入这个模块
用户7886150
2020/12/20
8130
深入Python(2): __init__.py 用法
原文:http://www.2cto.com/kf/201204/129388.html python的每个模块的包中,都有一个__init__.py文件,有了这个文件,我们才能导入这个目录下的module。 那么,__init__.py还有什么别的功能呢? 其实,__init__.py里面还是可以有内容的,我们在导入一个包时,实际上导入了它的__init__.py文件。 我们可以再__init__.py文件中再导入其他的包,或者模块。 [python] import readers  import writers  import commands  import users  import meta  import auth  import admin  这样,当我们导入这个包的时候,__init__.py文件自动运行。帮我们导入了这么多个模块,我们就不需要将所有的import语句写在一个文件里了,也可以减少代码量。 不需要一个个去导入module了。 __init__.py 中还有一个重要的变量,叫做 __all__。我们有时会使出一招“全部导入”,也就是这样: from PackageName import * 这时 import 就会把注册在包 __init__.py 文件中 __all__ 列表中的子模块和子包导入到当前作用域中来。比如: #文件 __init__.py __all__ = ["Module1", "Module2", "subPackage1", "subPackage2"]
bear_fish
2018/09/20
8580
Python 中的魔法文件:__init__.py
在 Python 中,__init__.py 文件是一个特殊的存在。它用于将一个目录标记为 Python 的包,允许进行模块导入和组织代码分层结构。
井九
2024/10/12
2080
【Python】Python 包 ② ( 自定义 Python 包 | 导入并调用自定义 Python 包 | `__init__.py` 定义 `__all__` 变量 )
右键点击 PyCharm 中的 Python 工程根目录 , 选择 " New / Python Package " 选项 ,
韩曙亮
2023/10/11
5990
【Python】Python 包 ② ( 自定义 Python 包 | 导入并调用自定义 Python 包 | `__init__.py` 定义 `__all__` 变量 )
Python中常见的__init__.py是什么意思?详解Python import的方式和原理
工程模块化是指将具有一定共性的功能封装成一个模块,并对外暴露应用接口,方便其他工程直接调用而无需关注底层实现的思想,工程模块化可以避免工程中各种功能函数相互交杂、定义混乱不堪的情形,有助于提高系统可维护性。
润森
2022/09/22
1.4K0
Python中的一个神秘文件:__init__.py 使用讲解
深度理解python的__init__.py 文件, 用了这么久python 不知道这个小知识那就是有点小尴尬
读懂原理
2022/12/18
4K0
Python中的一个神秘文件:__init__.py 使用讲解
Python包和__init__.py文
        在eclipse中用pydev开发python脚本时,当新建一个package时,系统会自动地生成一个空的__init__.py文件。如果把这个文件删掉,那么你会发现包图标自动变为文件夹图标。这是怎么回事呢?
py3study
2020/01/08
4090
python基础教程:包,对,没错,绝对不是双肩包!
包,Package,是一种Python模块的集合,从文件组织形式上看,包就是一个文件夹,里面放着各种模块(.py文件),也可以有子文件夹(子包)。包名构建了一个Python模块的命名空间。比如,模块名A.B表示A包中名为B的子模块。这种使用加点的模块名可以让你写的软件包里面的模块名称和其它软件包里面的模块名称一样,但又不相互冲突。
一墨编程学习
2019/05/15
5280
Python import 【总结】
可能网上很多文章或博客都没解释清楚,作者自己也苦心于Python的import。至此,把自己的总结的分享给大家,本文不做基础讲解,仅说明疑惑的地方。
py3study
2020/01/10
7580
python学习笔记5.3-包的创建
本文主要介绍了如何创建一个包以及包中模块的导入和调用方法。首先介绍了包的创建过程,然后阐述了如何合理使用__init__.py文件,使用相对导入的方法以及使用__all__关键词。最后,讨论了模块分解时的一些注意事项,包括包的转换以及导入方式的调整等。
锦小年
2018/01/02
8190
python模块与包揭秘
我们首先导入了math模块,然后利用math模块中的sqrt函数计算了4的平方根。让我们再细致一点来看待这个问题。 我在之前提到过,其实import也是执行了一个赋值操作,它把我们需要导入的目标模块对象赋值给了对应的变量名,例如上例就是把math模块对象赋值给了math这个变量名,然后math所指向的模块对象中的内容(函数、最外层的变量)都可以认为是math这个对象的属性(方法),所以我们可以用object.attr的形式来访问。
tnt阿信
2020/08/05
5080
python模块与包揭秘
Python基础-__init__运用
举个例子,一个abc.py的文件就是一个名字叫abc的模块,一个xyz.py的文件就是一个名字叫xyz的模块。
沈宥
2022/05/09
1960
Python基础-__init__运用
Python中模块和包基础学习
Python中的模块是指一个文件,可以包含函数、类、变量和可执行代码等,并且可以被其他程序引入和使用。使用模块可以使得代码更加模块化和易于维护。
周小末天天开心
2023/10/16
2250
Python在不同目录下导入模块的方法
python在不同层级目录import模块的方法 使用python进行程序编写时,经常会调用不同目录下的模块及函数。本篇博客针对常见的模块调用讲解导入模块的方法。
李智
2018/08/03
3.3K0
相关推荐
一文教你看懂__init__.py这个被大家轻视的文件
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档