您的位置:首页 > 编程语言 > Python开发

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

  • 点赞
  • 收藏
  • 分享
  • 文章举报
aocheng1010 发布了0 篇原创文章 · 获赞 0 · 访问量 55 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: