python __slots__方法

使用__slots__限制类添加属性

class Stuendt(object):

    __slots__ = ('name', 'age', 'score') 用tuple定义允许绑定的属性名称

s = Student()                   #创建类的实例

s.name  = 'chenguang' #绑定类的name属性

s.age = 25                      #绑定类的age属性

s.score = 59                  #绑定类的score属性

s.grade = 2

Traceback (most recent call last):
  File "", line 1, in 
AttributeError: 'Student' object has no attribute 'grade'
ps1:由于grade 没有放在__slots__中,所以不能绑定grade属性,试图绑定grade属性会得到一个AttributeError的错误

ps2:__slots__定义的属性仅对当前的类有效果,对继承的子类是不起作用的

class GraduateStudent(Student):

    pass

g = GraduateStudent()

g.grade =  100



你可能感兴趣的:(python)