__all__=[]的作用
来源:互联网 发布:崩坏3rd矩阵 编辑:程序博客网 时间:2024/06/06 21:45
看个小栗子:
#accounts/models.pyclass Card(TimeStampedModel): user_id = models.IntegerField(unique=True, verbose_name=_(u"用户ID")) number = models.CharField(max_length=20, verbose_name=_(u'卡号')) name = models.CharField(max_length=16, verbose_name=_(u'开户人')) class Meta: verbose_name = _(u"银行账号") verbose_name_plural = _(u"银行账号")class Kard(TimeStampedModel): user_id = models.IntegerField(unique=True, verbose_name=_(u"用户ID")) number = models.CharField(max_length=20, verbose_name=_(u'卡号')) name = models.CharField(max_length=16, verbose_name=_(u'开户人')) class Meta: verbose_name = _(u"银行账号") verbose_name_plural = _(u"银行账号")__all__ = ["Card"]
models.py的最后有一个__all__ = ["Card"]
的属性,我们进入shell,看下
from all.accounts.models import *d = Kard()---------------------------------------------------------------------------NameError Traceback (most recent call last)<ipython-input-2-145023eecf0b> in <module>()----> 1 d = Kard()NameError: name 'Kard' is not definedb = Card()
现象很明显了,导入models文件之后,使用Card类,无问题,使用Kard类的时候,会报错没有定义,在吧__all__ = ["Card"]
这行注释掉,重新shell一下,这时就可以使用Kard类了,所以可以得到结论,__all__ = []
是控制本py文件哪些可以被外部导出(使用)的类或方法。
在模块(*.py)中使用__all__
,表示可以导出列表里的类、函数、变量等成员,
不使用(默认)将导出模型中所有不以下划线开头(私有)的成员,
在模块中使用__all__
属性可避免在相互引用时的命名冲突
0 0
- __all__=[]的作用
- Python 中 __all__ 的作用
- python的moudles文件中__all__作用
- python的moudles文件中__all__作用
- [问与答]Python 中 __all__ 的作用 ?
- python __all__的用法
- __all__=[]模块控制
- __all__
- python关于__all__的定义
- python中模块的__all__属性
- 【python】__all__
- Python __all__
- python __all__
- python异常处理、模块的使用、__all__的调用、模块的发布和安装
- python里__all__ 属性分别于模块和包之中的用法
- python学习(2):自定义包结构及__init__.py模块和__all__变量的使用
- Python变量访问权限控制的几种方法:单下划线、双下划线、__slots__、@property、__all__
- python里__all__ 属性分别于模块和包之中的用法
- HDUACM2018
- ScrollView自由定位
- 世界上最遥远的距离是计算机不懂人类的时间
- 【error】npm安装express报错: command not found
- CentOS7mini版本启动网卡、替换yum源
- __all__=[]的作用
- 企业级服务元年:iClap高效解决手游更新迭代问题
- 无需Root也能Hook?——Depoxsed框架演示
- BLE-NRF51822教程2-工程初始化流程
- 【项目管理和构建】——Maven简介(一)
- C#二进制数组的字符串形式转换为二进制Byte数组
- bzoj4417 超级跳马 矩阵乘法
- Android 监听电话的拨打状态
- 安卓雷达扫描动画效果实现