详解python __init__.py 和 __all__作用
lizi0403 人气:0python __init__.py 和 __all__作用
一、__init__.py
1、导入文件夹包的时候,会运行写在该文件夹包下的__init__.py文件
如 import package
import package.xxx
from package import xxx 等
这样会自动运行package文件夹下的__init__.py文件
2、__init__.py文件中可以定义该文件夹包的名字空间,定义的方法就是在__init__.py文件里导入这些名字
如在package文件夹下的__init__.py文件里,可以导入该文件夹下的所有py文件(模块),这样就将所有模块名导入了package的名字空间:
如package文件夹下有file1.py和file2.py两个模块
在package的__init__.py里from . import *就将file1和file2导入了package的名字空间
这样在别处import package导入package包,就可以正常写调用语句如package.file1.func(), package.file2.func()
二、__all__属性
文件夹包下的__ini__.py文件里可以定义__all__属性,作用是在别处模糊导入该包中的所有名字时(from package import *),可以隐藏包中名字空间中的一些名字
补充:python 包 __init__ .py 作用 和 __all__方法
__init__.py的主要作用:
1. Python中package的标识,不能删除
2. 定义__all__用来模糊导入
3. 编写Python代码(不建议在__init__中写python模块,可以在包中在创建另外的模块来写,尽量保证__init__.py简单)
__all__的作用:
模糊导入中的*中的模块是由__all__来定义的,__init__.py的另外一个作用就是定义package中的__all__,用来模糊导入,如__init__.py:
加载全部内容