python中的__slots__
2020-02-17 04:09
477 查看
class Student(object): pass
>>> s = Student() >>> s.name = 'Tom' # 动态给实例绑定一个属性 >>> print(s.name) Tom
如果我们想要限制实例的属性怎么办?比如,只允许对Student实例添加
name和
age属性。
为了达到限制的目的,Python允许在定义class的时候,定义一个特殊的
__slots__变量,来限制该class实例能添加的属性:
class Student(object): __slots__ = ('name', 'age') # 用tuple定义允许绑定的属性名称
使用
__slots__要注意,
__slots__定义的属性仅对当前类实例起作用,对继承的子类是不起作用
除非在子类中也定义
__slots__,这样,子类实例允许定义的属性就是自身的
__slots__加上父类的
__slots__的
转载于:https://www.cnblogs.com/sxh-myblogs/p/8229131.html
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- Python中面向对象的__init__,__new__方法剖析
- python中的四种单例模式
- 贝叶斯定理_python实现_1_贝叶斯基础
- numpy实现分段函数
- python平铺多维列表
- Python的import模块&如何创建自己的模块
- 查看Python已安装的模块
- Python数据类型之整数和字符串常用功能
- Python实现内容检索子系统(BM25算法)
- python3.7 ImportError: No module named _ssl 解决方法
- 基于Python Django的慕课网校教育平台的开发(一)
- Learning Python for Natural Network (01)
- Ubuntu 16.0.4 中默认的Python2环境切换为Python3
- 密度聚类DBSCAN算法代码超详细注释(python版)
- Center OS下安装python3
- Python中print单引号、双引号、三引号
- python基础--print()函数、变量定义、转义字符
- Python | 导包 ModuleNotFoundError: No module named 'xxx'
- python学习day01
- AttributeError错误,用的是python3,jango2.1为什么回报错是因为ForeignKeys不存在?