忙开学,博客荒废了一段,现在捡起来。闲话不多说,步入正题
最近正在学习Python,发现Python中类属性和实例属性容易混淆。于是写了下面这段demo
class Stu(object):
pass
def set_age(self,age):
self.age = age
s1 = Stu()
s2 = Stu()
from types import MethodType
Stu.set_age = MethodType(set_age,Stu)
s1.set_age(1) \\通过set_age方法,设置的类属性age的值
s2.set_age(2) \\也是设置类属性age的值,并把上个值覆盖掉
print(s1.age,s2.age) \\由于s1和s2自身没有age属性,所以打印的是类属性age的值
s1.age = 10 \\给实例s1添加一个属性age并赋值为10
s2.age = 20 \\给实例s2添加一个属性age并赋值为20
print(s1.age,s2.age) \\打印的是a和s自身的age属性值,不是类age属性值
有了这段代码,就很好分清、理解类属性和实例属性了(^__^)