使用isinstance()
更改了dict
的班级类型
为什么会这样?我知道使用内置可以防止,但我想更好地理解为什么会发生这种情况。
250 def printPretty(records,num,title='Summary:'):
251 import pdb; pdb.set_trace()
252 if isinstance(records, list):
253 print ("\n{}\n{}".format(title.center(120),"="*120))
254 table = list()
255 for i in records:
...
263 elif isinstance(records, dict):
264 -> for key in records:
265 if isinstance(records[key], Param):
266 for i in records[key]:
267 print (i)
268 print ("")
269
(Pdb) type(records)
<class 'dict'>
(Pdb) type(dict)
<class 'type'><b>
答案 0 :(得分:2)
我认为你的困惑在于type(dict) != dict
。让我们完全丢弃你的例子,除了最后两行,我将使用交互式python来呈现。
>>> type(dict)
<type 'type'>
>>> type(dict())
<type 'dict'>
这是因为dict
不是字典,而是字典的类型。 dict()
或{}
(或{1:2, ...}
)是词典的实例。这些实例的类型为dict
,并且满足isinstance(___, dict)
。