# -*- coding: utf-8 -*-
#python 27
#xiaodeng
#python之函数用法getattr()
#getattr()
#说明:
'''
getattr(...)
getattr(object, name[, default]) -> value
default:默认值
Get a named attribute from an object; getattr(x, 'y') is equivalent to x.y.
When a default argument is given, it is returned when the attribute doesn't
exist; without it, an exception is raised in that case.
'''
#案例
class A():
def __init__(self):
self.a = 'a'
def method(self):
#print "method print"
return 'xiaodeng'
a = A()
#如果有属性a则打印a,否则打印default
print getattr(a, 'a', 'default') #a
#如果有属性b则打印b,否则打印default
print getattr(a, 'b', 'default') #default
#如果有方法method,否则打印其地址,否则打印default
print getattr(a, 'method', 'default') #<bound method A.method of <__main__.A instance>>
#如果有方法method,运行函数并打印None否则打印default
print getattr(a, 'test', 'default') #default