Python __getattr__与__setattr__使用方法

本文介绍了一个Python类中使用__setattr__、__getattribute__和__str__方法的示例,通过这些方法可以实现对类属性的自定义设置与获取,并展示了如何定制类实例的字符串表达形式。

    __getattr__和__setattr__可以用来对属性的设置和取值进行自定义处理,__str__则是字符串形式输出的时候进行自定义处理,

给出测试用例:

  1   class  Book(object):
 
2       def   __setattr__ (self,name,value):
 
3           if  name  ==   ' value ' :
 
4              object. __setattr__ (self,name,value - 100 )
 
5           else :
 
6              object. __setattr__ (self,name,value)
 
7  
 
8       def   __getattribute__ (self,name):
 
9           try :
10               return  object. __getattribute__ (self,name)
11           except :
12               return  name  +   " is not found "
13  
14       def   __str__ (self):
15           return  self.name  +   " cost: "   +  str(self.value)
16  
17  c = Book()
18  c.name = ' xiaoxia '
19  c.value  =   200
20   print  c.name
21   print  c
22   print  c.value
23   print  c.Type
24  
25  输出结果:
26  xiaoxia
27  xiaoxiacost: 100
28   100
29  Typeis  not  found   


 

作者: xiaoxia

出处:http://cnblogs.com/xiaoxia

我的淘宝:http://shop62115161.taobao.com/

本文遵从GNU 的自由文档许可证(Free Document License)的条款,欢迎转载、修改、散布。

转载于:https://www.cnblogs.com/xiaoxia/archive/2010/08/04/1789090.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值