Python中__all__属性具体有什么用途?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1131个文字,预计阅读时间需要5分钟。
1. Python 中模块级公开接口:通过 `__all__=[foo, bar]` 显式声明。
2.Python 没有原生的可见性控制,可见性维护依赖约定。
3.例如,双下划线开头变量被视为私有。
1、Python 可以在模块级别暴露接口:
__all__ = ["foo", "bar"]:Python 没有原生的可见性控制,其可见性的维护是靠一套需要大家自觉遵守的”约定“,比如,双下划线开头的变量对外部不可见(私有变量)。
①__all__ 是针对模块公开接口的一种约定,比起双下划线的方式(私有变量或者私有函数),__all__以提供了”白名单“的形式暴露接口。
②一些不以下划线开头的变量(比如从其他地方import 到当前模块的成员)可以同样被排除出去。
③如果定义了__all__,其他文件中使用from xxx import *导入该文件(可以是模块或者包)时,只会导入 __all__ 列出的成员,可以其他成员都被排除在外。
本文共计1131个文字,预计阅读时间需要5分钟。
1. Python 中模块级公开接口:通过 `__all__=[foo, bar]` 显式声明。
2.Python 没有原生的可见性控制,可见性维护依赖约定。
3.例如,双下划线开头变量被视为私有。
1、Python 可以在模块级别暴露接口:
__all__ = ["foo", "bar"]:Python 没有原生的可见性控制,其可见性的维护是靠一套需要大家自觉遵守的”约定“,比如,双下划线开头的变量对外部不可见(私有变量)。
①__all__ 是针对模块公开接口的一种约定,比起双下划线的方式(私有变量或者私有函数),__all__以提供了”白名单“的形式暴露接口。
②一些不以下划线开头的变量(比如从其他地方import 到当前模块的成员)可以同样被排除出去。
③如果定义了__all__,其他文件中使用from xxx import *导入该文件(可以是模块或者包)时,只会导入 __all__ 列出的成员,可以其他成员都被排除在外。

