0
点赞
收藏
分享

微信扫一扫

python 之 __slots__


一、背景

​python 动态语言,可以在运行过程中,修改实例的属性和增删方法​​​​Python有时我们只想使用固定的属性,不想任意绑定属性​

__slots__ 作用
限制对象属性的添加,限制类的实例使用的属性的种类

二、进行对比

  • ​python 动态语言,可以随意修改实例的属性和增删方法​

class User:
pass

user = User()
user.username = 'zhangsan'
user.age = 18
user.sex = 'male'
print(user.age)
print(user.sex)

  • ​如果类需要限制对象属性的添加,限制类的实例使用的属性的种类​​ user 中只能使用username、age 两个属性
  • class User:
    __slots__ = ['username', 'age']

    user = User()
    user.username = 'zhangsan'
    user.age = 18
    print(user.age)
    加一个username、age 之外的则报错
    user.sex = 'male'
    print(user.sex)

三、优点

类的属性固定的情况,__slots__速度更快、更节省内存


举报

相关推荐

0 条评论