当前位置:主页 > python教程 > 对Python模块导入时全局变量__all__的作用详解

Python中模块导入时全局变量__all__的作用

发布:2020-02-12 19:12:38 144


为网友们分享了Python相关的编程文章,网友高同济根据主题投稿了本篇教程内容,涉及到Python、全局变量、__all__、对Python模块导入时全局变量__all__的作用详解相关内容,已被560网友关注,如果对知识点想更进一步了解可以在下方电子资料中获取。

对Python模块导入时全局变量__all__的作用详解

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

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

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

test1.py

__all__=["test"]
def test():
 print('----test-----')
 
def test1():
 print('----test1----')

main.py

from test1 import *
 
 
def main():
 test()
 
 #test1()
 
main()

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

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

对Python模块导入时全局变量__all__的作用详解

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

对Python模块导入时全局变量__all__的作用详解

那么在模块中的__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__的作用详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。


参考资料

相关文章

  • python3点餐系统实例代码

    发布:2020-01-28

    这篇文章主要为大家详细介绍了python3实现点餐系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下


  • Python交互模式和直接运行py文件的不同点讲解

    发布:2020-06-08

    今天小编就为大家分享一篇对Python的交互模式和直接运行.py文件的区别详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧


  • python在WIN运行时去掉DOS窗口显示的方法

    发布:2018-10-22

    Python运行不显示DOS窗口的解决方法 很多朋友在写python程序的时候对DOS界面窗口比较排斥,无论从视觉还是应用上都是感觉怪怪的,我们在这里就给大家整理了运行python程序时候隐藏掉DOS窗口的方法,一起来看下。 方法1: pythonw xxx.py 方法2: 将.py改成.pyw (这个其实就是使用脚本解析程序pythonw.exe) 跟 python.exe 比较起来,pythonw.exe 有以下的不同: 1)执行时不会弹出控制台窗口(也叫


  • python实现词法分析器

    python实现词法分析器

    发布:2022-09-06

    给大家整理一篇关于python的教程,这篇文章主要为大家详细介绍了python实现词法分析器的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下


  • 实例讲解Python3如何利用print输出带颜色的彩色字体

    发布:2020-02-14

    用Python写命令行程序的时候,单一的输出颜色太单调了,所以下面这篇文章主要给大家介绍了关于Python3利用print输出带颜色的彩色字体的相关资料,需要的朋友可以参考下


  • Python输出列表(List)不带中括号和引号的问题及解决方法

    发布:2023-03-22

    这篇文章主要介绍了Python输出列表(List)不带中括号和引号的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下


  • python程序中的多任务

    发布:2021-04-16

    这篇文章主要介绍了python程序中多任务的相关资料,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下


  • Python中unittest单元测试框架的实例用法

    发布:2020-05-16

    这篇文章主要介绍了Python unittest单元测试框架的使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧


网友讨论