是否可以使用&#34测试Python 3的 dict_keys , dict_values 和 dict_items 内置类型;类型是"声明?
很容易获得给定的内置类型(在此示例中为 float ):
>>> type(4.5)
<class 'float'>
使用&#34;类型是&#34;用于测试其类型的声明:
>>> type(4.5) is float
True
>>> type(4.5) is int
False
现在我将创建一个简单的Python字典:
simpleDict = {
'firstKey' : 'firstValue',
'secondKey' : 'secondValue',
}
很容易列出字典 _keys , _values ,或者在此示例中 _items :
>>> simpleDict.items()
dict_items([('secondKey', 'secondValue'), ('firstKey', 'firstValue')])
获取该字典的 dict _ 内置类型之一的类型:
>>> type(simpleDict.items())
<class 'dict_items'>
但现在我无法弄清楚如何使用&#34;类型是&#34;用于测试内置类型的语句:
>>> type(simpleDict.items()) is dict_items
Traceback (most recent call last):
File "<input>", line 1, in <module>
NameError: name 'dict_items' is not defined
我没有必要这样做的实际原因,我只是好奇为什么 dict _ 内置类型被报告为&#34;未定义&#34; ,因而显然不具有&#34;类型的可测试(?)是&#34;测试
答案 0 :(得分:1)
正如Padraic Cunningham在评论中所说,您可以使用以下测试来检查dict_items是否相等:
>>> type(simpleDict.items()) is {}.items().__class__
True
这也适用于keys()
和values()
:
>>> type(simpleDict.keys()) is {}.keys().__class__
True
>>> type(simpleDict.values()) is {}.values().__class__
True
通常,要对类执行“类型为”测试,请初始化该类的空对象,然后获取该对象的__class__
成员以进行比较。