python-__all__的作用

python-__all__的作用

经常在看代码时,看到开头会有__all__ = ['a','b','c'] 这样的,所以就查了一下。

写一个代码测试一下就知道其用处了。

# fun.py

__all__ = ['a', 'b']
a = 3
b = 4
c = 5

def myPrint():
    print("Hello, world")

再写一个测试的

from fun import *

print("a", a)
print("b", b)
print("1")
print("c", c)
myPrint()

结果如下

a 3
b 4
1
Traceback (most recent call last):
  File "test.py", line 17, in <module>
    print("c",c)
NameError: name 'c' is not defined

所以__all__的作用是只把出现在这个列表中的对外显示,可以被外部import,其它的都不可以。注意它只对import *的时候有用,对于from a import b这种不起作用。

打赏,谢谢~~

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,多谢支持~

打开微信扫一扫,即可进行扫码打赏哦