python的 __all__ 用法

一、介绍

在Python中,__all__通常用于定义模块的公开接口。在使用from module import *语句时,此时被导入模块若定义了__all__属性,则只有__all__内指定的属性、方法、类可被导入;若没定义,则导入模块内的所有公有属性,方法和类。这可以帮助开发者明确地指定哪些符号是模块的公共API,以防止不必要的符号被导入。

二、使用

以下是__all__的用法示例:

module.py

# module.py

def public_function():
    return "This is a public function."

def _private_function():
    return "This is a private function."

variable = "This is a variable."

__all__ = ['public_function', 'variable']

在上面的示例中,public_functionvariable被列在__all__列表中,表示它们是该模块的公开接口。_private_function没有包含在__all__中,因此它被视为私有函数,不会在使用from module import *语句时被导入。

在使用from module import *导入模块时,只有在__all__列表中列出的符号会被导入。如果没有定义__all__,默认行为是导入所有不以下划线开头的全局符号。

# test.py

from module import *

def test():
    print(public_function())
    print(variable)
    print(_private_function())

test()

运行

python的 __all__ 用法_第1张图片

 

 参考:

python __all__ 用法_刘金宝_Arvin的博客-CSDN博客

你可能感兴趣的:(python,python)