怎么判断 Python 对象是否包含某个属性

 我来答
ly10604828
2017-03-05 · TA获得超过1465个赞
知道小有建树答主
回答量:341
采纳率:100%
帮助的人:373万
展开全部

顶级函数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__'))
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式