美文网首页Python 学习
python 中 __all__ 的含义与用法

python 中 __all__ 的含义与用法

作者: bianruifeng | 来源:发表于2018-12-17 09:35 被阅读9次

无论是在.py文件中,或者在包package中的__init__.py文件中都是
公开声明了暴露的接口方法
__all__ = ['Method1','Method2']
但是上述方法,仅对模糊导入时起到作用。如:from xxx import * 就只会导入 __all__ 列出的成员(代码中不推荐这种写法,但是懒啊),如果__all__ 定义有误,列出的成员不存在,还会明确地抛出异常,而不是默默忽略。

当使用路径精确导入的时候,声明了__all__ 的.py或者包中的方法,同样有效。

因为Python 没有语言原生的可见性控制,不像Java中有public,private,所以需要靠大家自觉遵守在一套约定下工作。比如下划线开头的应该对外部不可见。同样,all 也是对于模块公开接口的一种约定,比起下划线,all 提供了暴露接口用的“白名单”。一些不以下划线开头的变量(比如从其他地方 import 到当前模块的成员)可以同样被排除出去。

当然这种声明还有一个好处,就是“骗”过一些代码检查工具,报错出现导入而未使用的警告⚠️。

相关文章

  • python 中 __all__ 的含义与用法

    无论是在.py文件中,或者在包package中的__init__.py文件中都是公开声明了暴露的接口方法__all...

  • python __all__ 含义

    1. 背景 最近看了一些代码,发现有些python文件在import 下面声明 __all__,查阅资料了解其含义...

  • Python __all__ 用法

    在读 Django 源码时发现了这个 __all__:https://github.com/django/djan...

  • python的学习小结

    __all__的用法 常常看源码发现__init__.py文件中有__all__,关于它的用法举个栗子: __al...

  • Generator 函数的含义与用法

    Generator函数的含义与用法 Thunk函数的含义与用法 co函数库的含义与用法 async函数的含义与用法...

  • Python __all__变量用法

    Python中一个py文件就是一个模块,“__all__”变量是一个特殊的变量,可以在py文件中,也可以在包的__...

  • [转载]python之__all__

    [转载]使用__all__暴露接口 在Python中我们可以使用__all__暴露出模块级别的接口: 这样在其他模...

  • 2022-08-18 node 与 python 交互

    node与python交互,可以使用 python-shell 。 用法: node中: python: 更多用法...

  • Python中的__all__

    文章作者:Tyan博客:noahsnail.com | CSDN | 简书 1. 动机 今天看MXNet的gluo...

  • python里的__init__.py的作用

    1. Python中package的标识,不能删除 2. 定义__all__用来模糊导入 3. 编写Python代...

网友评论

    本文标题:python 中 __all__ 的含义与用法

    本文链接:https://www.haomeiwen.com/subject/qexqkqtx.html