Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4584099
  • 博文数量: 1214
  • 博客积分: 13195
  • 博客等级: 上将
  • 技术积分: 9105
  • 用 户 组: 普通用户
  • 注册时间: 2007-01-19 14:41
个人简介

C++,python,热爱算法和机器学习

文章分类

全部博文(1214)

文章存档

2021年(13)

2020年(49)

2019年(14)

2018年(27)

2017年(69)

2016年(100)

2015年(106)

2014年(240)

2013年(5)

2012年(193)

2011年(155)

2010年(93)

2009年(62)

2008年(51)

2007年(37)

分类: Python/Ruby

2012-09-06 15:46:50

文章来源:http://wangtong40.iteye.com/blog/371124

getattr()函数是Python自省的核心函数,具体使用大体如下:

10.1.5    获取对象引用getattr
Getattr用于返回一个对象属性,或者方法

Python代码  收藏代码
  1. class A:  
  2.     def __init__(self):  
  3.         self.a = 'a'  
  4.     def method(self):  
  5.         print "method print"  
  6.   
  7. a = A()  
  8. print getattr(a, 'a''default'#如果有属性a则打印a,否则打印default  
  9. print getattr(a, 'b''default'#如果有属性b则打印b,否则打印default  
  10. print getattr(a, 'method''default')  
  11. #如果有方法method,否则打印其地址,否则打印default  
  12. print getattr(a, 'method''default')()  
  13. #如果有方法method,运行函数并打印None否则打印default  
 



注:使用getattr可以轻松实现工厂模式。
例:一个模块支持html、text、xml等格式的打印,根据传入的formate参数的不同,调用不同的函数实现几种格式的输出

Python代码  收藏代码
  1. import statsout  
  2. def output(data, format="text"):                               
  3.     output_function = getattr(statsout, "output_%s" % format)  
  4.     return output_function(data) 

阅读(1708) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~