from types import MethodType
class Student(object):
__slots__ = ('name', 'age', 'score', 'set_score')
'''
__slots__方法限制实例的属性 仅对当前实例起作用,对于子类不起作用,
除非在子类中也定义__slots__方法
这样,子类实例允许定义的属性就是自身的__slots__加上父类的__slots__
'''
def set_score(self, score):
self.score = score
alex = Student()
alex.name = 'alex'
alex.age = '18'
alex.score = 99
alex.set_score = MethodType(set_score, alex) # 给alex实例绑定一个set_score方法
alex.set_score(88)
print(alex.score)
print(alex.name, alex.age, alex.score)
Student.set_score = set_score
print(Student.set_score, set_score)
Student.set_score = MethodType(set_score, Student) # 给Student类绑定一个set_score方法
print(Student.set_score, set_score)
__slot__
最新推荐文章于 2020-08-16 11:03:53 发布