python中的` | 您所在的位置:网站首页 › python中init函数详解 › python中的` |
定义: __all__是一个可以用来暴露接口的全局变量 使用: 可以分为在普通模块内使用和在包下的__init__.py使用 在普通模块内使用比如c1,c2同属于module1包内部的模块,c2调用c1中的元素,但是因为c1中使用__all__限定了有效变量或者函数,则c2会调用失败 c1.py __all__ = ['a','b'] a = 28 b = 3 c = 43c2.py from c1 import * # print("hello, i am c2.py") print(a) print(b) print(c)执行python c2.py结果: 在实际使用中,如果别人调用你的函数,你可以选择性的将一些函数、变量等通过该全局变量进行暴露 在包下的__init__.py使用__init__.py的作用有三个: 作为包的标志,一个文件夹有了它才叫做包它可以为空,也可以将各个模块通用的一些变量、函数等进行初始化,提高代码运行效率通过__all__来决定公开内部的哪些模块供调用我们重点看第三个作用。 我在module1中定义c1,c2,将__init__.py下的__all__中将c1,c2都包含进去: c1.py: print("hello. i am c1.py")c2.py: print("hello. i am c2.py")__init__.py: __all__ = ['c1','c2']运行**python test.py** from module1 import *得到: hello. i am c1.py hello, i am c2.py 可见,c1,c2接口都是可以调用的,假如我修改 __init__.py: __all__ = ['c1']# 将c2去掉运行**python test.py** 得到: hello. i am c1.py 也就是c2.py不能够再被调用。 [完] |
CopyRight 2018-2019 实验室设备网 版权所有 |