__all__
作者:互联网
Python中一个py文件就是一个模块,“__all__”变量是一个特殊的变量,可以在py文件中,也可以在包的__init__.py中出现
1、在普通模块中使用时,表示一个模块中允许哪些属性可以被导入到别的模块中,
如:全局变量,函数,类。如下,test001.py和test002.py
test001:
__all__ = ['A','B']
def A():
print("a")
def B():
print("b")
def C():
print("c")
def _d():
print("d")
test002:
from test.test001 import *
A()
B()
#C() # 会抛错
那么在模块中的__all__变量就是为了限制或者指定能被导入到别的模块的函数,类,全局变量等,如果指定了那么只能是指定的那些可以被导入,没有指定默认就是全部可以导入,当然私有属性应该除外。(私有属性默认是不会被导入的)
2. 在包下的__init__.py中
在 test/__init__.py中加入 __all__ = ['test001','test002']
在from test import *,只会导入all里面定义的2个函数;当__init__.py为空时,只是导入这个包,并非导入模块,因为导入 包时会首先执行下__init__.py这个文件
from . import test001 导入当前目录下的test001模块
from .. import test001 导入上一层目录下的test001模块
标签:__,test001,__.,py,导入,模块 来源: https://www.cnblogs.com/wenshu/p/12355672.html