Python中一个py文件就是一个模块,“__all__”变量是一个特殊的变量,可以在py文件中,也可以在包的__init__.py中出现。
1、在普通模块中使用时,表示一个模块中允许哪些属性可以被导入到别的模块中,
如:全局变量,函数,类。如下,test1.py和main.py
test1.py
__all__=["test"] def test(): print('----test-----') def test1(): print('----test1----')
main.py
from test1 import * def main(): test() #test1() main()
两个文件在同一个目录下。
此时执行python main.py时结果如下:
但是如果放开main.py的注释后,如下:
那么在模块中的__all__变量就是为了限制或者指定能被导入到别的模块的函数,类,全局变量等,如果指定了那么只能是指定的那些可以被导入,没有指定默认就是全部可以导入,当然私有属性应该除外。
2、在包下的__init__.py中
sound/effects/__init__.py中添加__all__ = ["echo", "surround", "reverse"]
那么就会在from sound.effects import *时,包含上面三个模块。当__init__.py为空时,只是导入这个包,并非导入模块。
__init__.py中可以执行一些初始化内容,比如:
from . import test1 导入当前目录下的test1模块
from .. import test 导入上一层目录下的test模块
因为导入 包时会首先执行下__init__.py这个文件
以上这篇对Python模块导入时全局变量__all__的作用详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。