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 互不干扰
https://blog.csdn.net/yuanyangsdo/article/details/60776612
将MethodType(set_age, Student)改为MethodType(set_age,None,Student)
Sign in to make a reply
小喵biubiu
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 互不干扰