首页 > 其他 > 详细

__all__

时间:2020-02-24 10:56:26      阅读:66      评论:0      收藏:0      [点我收藏+]

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模块

 

__all__

原文:https://www.cnblogs.com/wenshu/p/12355672.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!