一、简述二者区别
对类属性的修改可被保存在类中(单例模式就是基于类属性的这种特性),修改后的属性能够被子类继承
实例属性的修改只对该实例有效,不会对其他实例和其对应类的子类实例造成影响
二、来看下例子:
类属性:
class A(object):
a = 1
pass
print(A.a) # 查看A类的属性a,结果为1
A.a = 2 # 对A类的属性a进行修改
class B(A): # B类继承A类
pass
print(B.a) # 打印出B类属性a为2
实例属性:
class A(object):
def __init__(self,age):
self.name = "Allen" # 有个固定的实例属性name = "Allen"
self.age = age
a = A(12) # 创建实例a
aa = A(11) # 创建实例aa
print(a.name,a.age) # 结果为:Allen 12
print(aa.name,aa.age) # 结果为:Allen 11
a.name = "Ellen" # 修改实例a的属性name
print(a.name,a.age) # 结果为:Ellen 12
print(aa.name,aa.age # 结果为:Allen 11
class B(A): # 创建类B,继承自类A
pass
b = B(15) # 创建对象b
print(b.name,b.age) # 结果为:Allen 15