我试图创建一个内置方法的字典,但是我得到了如下所示的输出。为什么会这样?我只想明白。在
>>>
>>> dict = {'a': print('avc'), 'b': print('bbbb'), 'c': print('aaa')}
avc
bbbb
aaa
>>> dict
>>> {'a': None, 'b': None, 'c': None}
>>>
另外,如果有人想了解我的来历,他们可以看看这个问题: Link to the question I was trying to solve when I thought the above would be useful.
print
是一个将内容打印到屏幕上,但不返回任何内容的函数当你做赋值时,你说的是“散列值a等于print(“avc”)返回的值”
{cda>中的值是None,所以返回的值是None
Print不返回值。在
想象一下它的定义是这样的
因此,当您为字典中的键“a”分配print('avc')时,它会得到一个none。在
因为您在创建字典时调用了函数
print
。您将调用的结果存储在字典中,而不是存储函数print
。因此,您的字典将由代表None
调用的返回值的None
值填充。在你应该做的是有一个这样的结构:
现在您的字典将存储实际的函数
{'abc', <function print>}
然后可以通过迭代字典的值来调用这些函数:
^{pr2}$此外,您需要避免对变量使用} 内置类型)。在
dict
之类的名称。它们为python屏蔽了built-in types(在您的例子中是^{通常选择其他名称,如
d
。在相关问题 更多 >
编程相关推荐