【再回首Python之美】【类】类数据属性和实例数据属性的基本使用

直接上code:

#ex_class_attr.py
self_file = __file__

#实例对象 能访问实例数据属性,也可以访问类数据属性
#类 能访问类数据属性,不能访问实例数据属性
#一般情况下,实例对象不要通过访问/修改类数据属性 来实现实例属性可以完成的功能!

print "\n=====类数据属性,和实例数据属性======"
class CCar:
    _ver = "Ver1.0"  #类数据属性

    def __init__(self, color, age, money):
        self._color = color #实例数据属性
        self._age = age     #实例数据属性
        self._money = money #实例数据属性
        print "create obj(color:%s, age:%d, money:%d)" % \
              (self._color, int(self._age), int(self._money))

    def updateObjectAttr(self, color, age, money):
        self._color = color
        self._age = age
        self._money = money

    def updateClassAttr(self, version):
        CCar._ver = version

    def dumpObjectAttr(self):
        print "dump obj(color:%s, age:%d, money:%d)" % \
              (self._color, int(self._age), int(self._money))

    def dumpClassAttr(self):
        print "dump class(ver:%s)" % CCar._ver

car = CCar("red", 1, 23)
car.dumpObjectAttr()
car.dumpClassAttr()

print car._ver    #Ver1.0 #实例尝试访问类属性_ver,访问成功(也可以修改其值,不建议由对象修改类数据属性的数值)
print car._color  #red #实例尝试访问实例属性_color,访问成功
print car._age    #1
print car._money  #23 
print CCar._ver   #Ver1.0 #类尝试访问类属性_ver,访问成功(也可以修改其值,建议由类修改类属性的数值)
print CCar._color #AttributeError!类尝试访问实例属性,访问失败,不能访问!
#Traceback (most recent call last):
#  File "C:\Python27\ex_class_attr.py", line 36, in <module>
#    print CCar._color
#AttributeError: class CCar has no attribute '_color'


print "\n exit %s" % self_file

编译执行:


(end)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值