Python __all__变量用法

作者: 我爱学python | 来源:发表于2019-07-30 16:09 被阅读22次

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

1、在普通模块中使用时,表示一个模块中允许哪些属性可以被导入到别的模块中,

     如:全局变量,函数,类。如下,test1.py和main.py

     test1.py

main.py

两个文件在同一个目录下。

此时执行python main.py时结果如下:

但是如果放开main.py的注释后,如下:

那么在模块中的__all__变量就是为了限制或者指定能被导入到别的模块的函数,类,全局变量等,如果指定了那么只能是指定的那些可以被导入,没有指定默认就是全部可以导入,当然私有属性应该除外。

2、在包下的__init__.py中

sound/effects/__init__.py中添加__all__ = ["echo", "surround", "reverse"]

那么就会在from sound.effects import *时,包含上面三个模块。当__init__.py为空时,只是导入这个包,并非导入模块。

__init__.py中可以执行一些初始化内容,比如:

from . import test1 导入当前目录下的test1模块

from .. import test 导入上一层目录下的test模块

因为导入 包时会首先执行下__init__.py这个文件 

相关文章

  • Python __all__变量用法

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

  • python进阶-特殊变量和属性

    本文主要记录了python中一些特殊变量或者属性的说明,比如__all__等。 __all__ 先看代码,假设有两...

  • Python __all__ 用法

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

  • Python 学习笔记

    python 中 __all__变量: 它是一个string元素组成的list变量,定义了当你使用from imp...

  • Python 高级用法

    python 中 __all__变量: 它是一个string元素组成的list变量,定义了当你使用from im...

  • python的学习小结

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

  • Python模块__all__变量

    除此之外,还可以借助模块提供的 __all__ 变量,该变量的值是一个列表,存储的是当前模块中一些成员(变量、函数...

  • Robot Framework 变量

    变量的用法 RF 中的变量,实质上就是一个 Python 变量,它指向一个 Python 对象,所以 RF 变量对...

  • [转载]python之__all__

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

  • 阅读bk_monitor

    Python标准模块--functools __all__的作用 https://www.cnblogs.com/...

网友评论

    本文标题:Python __all__变量用法

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