from types import MethodType class Student(object): pass def set_age(self,age): self.age = age def set_score(self,score): self.score = score s = Student() #1.为实例添加方法 s.set_age = MethodType(set_age,s) s.set_age(21) print(s.age) #2.为类添加方法 Student.set_score = set_score s.set_score(99) print(s.score) #也可以这样 Student.set_score = MethodType(set_score,Student) s.set_score(99) print(s.score) #3.但是不能这样 s.set_age = set_age s.set_age(21) print(s.age)
class Student(object): __slots__ = ('name','age') class Collage(Student): pass s = Student() g = Collage() s.name = 'Gabe' s.age = 21 #实例无法绑定score属性 s.score = 99 #__slots__对继承的子类不起作用 g.score = 99 print(s.name) print(s.age) print(s.score) print(g.score)
Sign in to make a reply
黑漆漆的四壁