Python 中的__all__有什么作用?

在 Python 模块中,我们可以使用 all 变量来定义一个模块中可导入的对象。它是一个列表或元组,用于指定一个模块中哪些成员应该被导入,哪些成员应该被隐藏。当我们使用 from module import * 语句来导入一个模块时,只有 all 中列出的成员才会被导入。

具体来说,all 的作用是限制使用通配符导入的符号。在实际使用中,通常将这个变量定义在模块的最顶部,下面是一个例子:

__all__ = ['foo', 'bar']

def foo():
    pass

def bar():
    pass

def baz():
    pass

在这个例子中,我们定义了 all 变量,用于限制 from module import 语句导入的符号只有 foo 和 bar。这意味着,当我们使用 from module import 语句时,只有 foo 和 bar 这两个函数会被导入,而 baz 函数不会被导入。

需要注意的是,all 变量只影响使用通配符 * 导入的符号,对于显式导入的符号不会有影响。例如,下面的代码中,我们显式导入了 baz 函数:

from module import foo, bar, baz

在这种情况下,all 变量不会起作用,因为我们显式导入了 baz 函数。

除了限制导入的符号,all 还有一个作用是提供文档,帮助其他开发者知道哪些符号是模块的公共接口,应该被使用。

本文链接:https://my.lmcjl.com/post/18166.html

展开阅读全文

4 评论

留下您的评论.