为什么“dict_views”不能作为类型分配或打印?

时间:2018-01-04 20:17:04

标签: python-3.x

dict_views有什么不同,我不能只是将其分配或打印为类型?

所以,这有效:

print(type({1:1}.keys())
<class dict_keys>

那不是:

print(dict_keys) 
>NameError: name 'dict_keys' is not defined

有些人认为,我希望dict_keys成为一个变量,我已经在标题中说过,我正在尝试访问type dict_views而不是变量{{1} }

1 个答案:

答案 0 :(得分:2)

当你尝试

>>> print(dict_keys)

尝试对dict_keys变量进行变量查找。没有dict_keys变量。查找失败。

您在

中看到的名称
>>> type({}.keys())
<class 'dict_keys'>

变量查找无关。这是班级的__name__属性。 __name__可以是班级作家想要的任何东西。对于intcollections.OrderedDict等类,__name__通常设置为与班级可用的变量名称相匹配,但这不是必需的,并且&#39} ;并不要求该类可以通过任何变量获得。