当创建一个类的实例之后,可以给这个实例绑定任何属性和方法,
class Student(objecdt):
pass
s = Student()
s.name = 'ZhuYong'
>>>print(s.name)
ZhuYong
给实例加上方法(这种方法只对当前实例起作用,对其他实例不起作用):
>>>def set_age(self,age):
... self.age = age
...
>>>from types = MethodType(set_age,s)
>>>s.set_age(22)
>>>s.age
22
给类添加方法(对所有的实例都起作用):
def set_score(self,score):
... self.score = score
...
>>>Student.set_score = set_score
t通常可以直接在class中定义方法,但是python允许在程序运行过程中给clas动态添加功能。
使用slots可以限制这个class实例可以添加的属性:
class Student(object):
__slots__ = ('name','age')
这表明该class的实例只能添加’name’和’age’这两个属性。
该限制只对当前clas起作用,对其子类不起作用,除非子类也使用了’slots‘,则孜勒的实例个定义的属性为自身限制的和父类限制的。