[Python]类属性与实例属性

         python在__init__(self) 方法中定义的属性为实例属性,并且python的实例可以动态地增加实例属性;直接跟在类名后边定义的属性都默认是类属性(类似于c++的static变量)。

         要明白雷和实例都是名称空间。类是类属性的名称空间,实例则是实例属性的名称空间。实例属性能够在名称访问(搜索)中覆盖类属性,通俗地讲就是实例名称空间嵌套在类名称空间中,但是在类名称空间中查找名称时不会查找实例名称空间。所以可以采用类来访问类属性,如果实例没有同名的属性的话,也可以用实例来访问。

class Attribute(object):
    def __init__(self,a=0,b=0):
        self.a=a
        self.b=b
    c_a=10
aaa=Attribute()
bbb=Attribute()
print Attribute.c_a,aaa.c_a,bbb.c_a
print aaa.__dict__
print bbb.__dict__
aaa.c_a+=10
print Attribute.c_a,aaa.c_a,bbb.c_a
print aaa.__dict__
print bbb.__dict__

#输出
10 10 10
{'a': 0, 'b': 0}
{'a': 0, 'b': 0}
10 20 10
{'a': 0, 'c_a': 20, 'b': 0}
{'a': 0, 'b': 0}      


 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值