限制类属性的扩展

我们知道Python中,我们很容易为一个类的实例增加属性或者方法。
比如

class Student(object):
    pass

s = Student()
s.name = "lightky"
print(s.name)  #为实例s增加了属性name

def set_id(self, id):
    self.id = id

from types import MethodType

s.set_id = MethodType(set_id, s)
s.set_id(201300000001)
print(s.id)   # 为s增加了set_id方法,从而可以输出id属性

Continue Reading...