Skip to main content
 首页 » 编程设计

python之函数 'hasattr()' 在 Python 中无法正常工作

2025年05月04日11webabcd

函数“hasattr()”在 Python 中没有像我预期的那样工作

我有以下代码:

#!/usr/bin/python 
import re 
import os 
import sys 
 
results=[{'data': {}, 'name': 'site1'}, {'data': {u'Brazil': '5/1', u'Panama': '2000/1'}, 'name': 'site2'}] 
 
print results[1] 
if hasattr(results[1]['data'], u'Brazil'): 
    print 'has' 
else: 
    print 'hasn\'t' 

当我运行它时,它会给我输出:hasn't。
我不明白如何检查属性是否存在。
我试图在 Brazil 之前删除 u 但它不起作用。
如何解决?

请您参考如下方法:

hasattr(..) 检查对象是否具有具有给定名称的属性。但是正如条件所说的那样,没有 somedict.Brazil。

您可以使用 in 检查字典中key 的成员资格,例如:

if <b>u'Brazil' in results[1]['data']</b>: 
    print 'has' 
else: 
    print 'hasn\'t'

请注意,这只会检查字典中是否存在与给定键 (u'Brazil') 相同的 key,它不会检查值,对于值,您可以在结果 [1]['data'].values() 中使用 '5/1'。请注意,搜索键通常在O(1) 内完成,而搜索值将在O(n) 内运行。