我无法弄清楚我的代码有什么问题:
for key in tmpDict:
print type(tmpDict[key])
time.sleep(1)
if(type(tmpDict[key])==list):
print 'this is never visible'
break
输出是 <type 'list'>
但 if 语句永远不会触发。谁能在这里发现我的错误?
原文由 Benjamin Lindqvist 发布,翻译遵循 CC BY-SA 4.0 许可协议
您的问题是您之前在代码中将
list
重新定义为变量。这意味着当您执行type(tmpDict[key])==list
if 时将返回False
因为它们不相等。话虽如此,在测试某物的类型时,您应该改用
isinstance(tmpDict[key], list)
,这不会避免覆盖的问题list
而是一种更 Pythonic 的检查类型的方法。