Discuss / Python / 暂时还没明白这是怎么回事

暂时还没明白这是怎么回事

Topic source

小喵biubiu

#1 Created at ... [Delete] [Delete and Lock User]

class Student(object): pass

def set_age(self, age): self.age = age

from types import MethodType

#给实例增加属性 s1 = Student() s1.set_age = MethodType(set_age, s1) s.set_age(11) print(s.age) #11

#给类增加属性一 Student.set_age = MethodType(set_age, Student) Student.set_age(22) print(Student.age) #22 s2 = Student() s3 = Student() s2.set_age(33) s3.set_age(44) print(s2.age, s3.age) #44 #44 s3覆盖s2

#给类增加属性二 Student.set_age = set_age Student.set_age(Student, 55) print(Student.age) #55 s4 = Student() s5 = Student() s4.set_age(66) s5.set_age(77) print(s4.age, s5.age) #66 #77 互不干扰

将MethodType(set_age, Student)改为MethodType(set_age,None,Student)


  • 1

Reply