Python __init__.py 的介绍

Python__init__.py 的介绍

大家在平常的时候都会看到__init__.py这个文件,但是大家知道这个__init__.py实际上拥有很多功能,那么你知道那些呢?一起来看看吧!

什么是__init__.py?

在Python中,init.py 通常用来声明这是一个paython package, 但是不是一个普通的文件,有了它Python就可以正确导入和使用该目录下的模块和子文件。

标识文件夹是Python Package

1
2
3
demo/
--__init__.py
--demo.py

可以赋予一些初始化想要做的功能

当我们在写项目的时候,有时候需要log记录,那么我们只需在 __init__的文件中声明即可在程序启动的时候进行初始化,无需在某个文件中再次导入初始化

1
2
3
4
5
6
# demo/__init__.py

from demo.logs import logger

def init_logs():
logger().get_loger()

那么在本目录下我们只需要

1
2
3
4
5
6
from . import get_logger()

class run_case():
logger().info("这是一个log")
pass

控制import * 下导入的模块

1
2
3
4
5
demo/
--__init__.py
--demo1.py
--demo2.py
--demo3.py

假如我们在目录下有个demo4.py 想要使用import *(原则上不推荐这么导入包,最好指定包名),但是不想导入demo3里面的内容,那么我就可以在__init__.py文件内定义

1
2
demo/__init__.py
__all__ = ['demo1', 'demo2']

当你执行 import * 的时候只会导入 demo1, demo2 的内容。或者在__init__ 文件下定义需要导入的函数名称,包含子函数的递归等。

总结

在Python中,init.py 文件是一个特殊的文件,它存在于Python包的目录中。Python通过__init__.py文件来识别目录是否应该被视为一个Python包(package)。当一个目录包含__init__.py文件时,Python解释器就会将该目录视为一个Python包,允许你通过import语句来导入该目录下的模块或子包。


Python __init__.py 的介绍
https://dreamshao.github.io/2024/07/15/init方法/
作者
Yun Shao
发布于
2024年7月15日
许可协议