gpt4 book ai didi

对Python模块导入时全局变量__all__的作用详解

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 24 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章对Python模块导入时全局变量__all__的作用详解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

python中一个py文件就是一个模块,“__all__”变量是一个特殊的变量,可以在py文件中,也可以在包的__init__.py中出现.

1、在普通模块中使用时,表示一个模块中允许哪些属性可以被导入到别的模块中, 。

如:全局变量,函数,类。如下,test1.py和main.py 。

test1.py 。

?
1
2
3
4
5
6
__all__ = [ "test" ]
def test():
  print ( '----test-----' )
 
def test1():
  print ( '----test1----' )

main.py 。

?
1
2
3
4
5
6
7
8
9
from test1 import *
 
 
def main():
  test()
 
  #test1()
 
main()

两个文件在同一个目录下.

此时执行python main.py时结果如下:

对Python模块导入时全局变量__all__的作用详解

但是如果放开main.py的注释后,如下:

对Python模块导入时全局变量__all__的作用详解

那么在模块中的__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__的作用详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我.

原文链接:https://blog.csdn.net/chuan_day/article/details/79694319 。

最后此篇关于对Python模块导入时全局变量__all__的作用详解的文章就讲到这里了,如果你想了解更多关于对Python模块导入时全局变量__all__的作用详解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com