使用getattr()函数可以返回一个对象属性值
getattr(object, name[, default])
使用方法:
#普通调用方式
result = obj.method(args)
#使用getattr
func = getattr(obj, "method")
result = func(args)
#或者写成一行
result = getattr(obj, "method")(args)
更改为异常安全形式(AttributeError:对象中没有该属性)
try:
func = getattr(obj, "method")
except AttributeError:
...... deal
else:
result = func(args)
#或者指定默认返回值
func = getattr(obj, "method", None)
if func:
func(args)
使用getattr实现工厂方法:
根据传入format参数的不同,实现html,text,xml等不同格式的输出
import statsout
def output(data, format="text"):
output_function = getattr(statsout, "output_%s" %format)
return output_function(data)
使用这种方法能够通过传入不同的format参数去掉用statsout模块中不同的方法