顶级函数hasattr可以查看对象是否包含某某属性,这里的属性包括数据属性和方法。getattr可以获取属性。
如下举例说明。
a=[1,2,3]
print('列表有count属性:%s'%hasattr(a,'count'))
print('列表有append属性:%s'%hasattr(a,'append'))
print('列表有shift属性:%s'%hasattr(a,'shift'))
print('列表的count属性是方法:%s'%hasattr(getattr(a,'count'),'__call__'))
print('列表的append属性是方法:%s'%hasattr(getattr(a,'append'),'__call__'))
class myclass():
def __init__(self):
self.valattr=3
def method(self):
pass
mc=myclass()
print('myclass有valattr属性:%s'%hasattr(mc,'valattr'))
print('myclass有method属性:%s'%hasattr(mc,'method'))
print('myclass的valattr属性是方法:%s'%hasattr(getattr(mc,'valattr'),'__call__'))
print('myclass的method属性是方法:%s'%hasattr(getattr(mc,'method'),'__call__'))