page contents

模块中的__ all__ 变量控制权限大

__all__在导入所有模块*的用法中,大有用处。all 列表中设定的内容,为import * 代表的内容。
如果使用 from sound.effects import *
    Python 会进入文件系统,找到这个包里面所有的子模块,一个一个的把它们都导入进来。
但是Windows是一个大小写不区分的系统,所以 ECHO.py 的文件导入不知道是模块 echo 还是 Echo 甚至 ECHO。
   
    解决办法:如果包定义文件 __init__.py 存在一个叫做 __all__ 的列表变量,那么在使用 from package import * 的时候就把这个列表中的所有名字作为包内容导入。

# __all__变量  
# 作用:当from 模块名 import * 时,只加载在__all__ 中定义的模块,在包内但没在__all__定义的不导入
__all__变量是一个列表,可以在模块中的__init__.py里使用。
__all__变量结合from  ... import * 语句使用,__all__变量就是控制*所表示要引入的东西(模块,函数,类等)
写法:__all__ = ['demo_1']

init文件中:  __all__ = ['te2', 'te3'],  # __all__ 相当于导入 [] 里面定义的模块。
模块文件中:from test import *
  • 发表于 2021-08-18 18:47
  • 阅读 ( 503 )
  • 分类:Python开发

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
Wilia
Wilia

28 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1470 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章