python 中的内置方法字典

dictionary of built in methods in python

我正在尝试创建内置方法的字典,但得到的输出如下所示。为什么会这样?我只是想了解一下。

>>>
>>> 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 是一个将内容打印到屏幕的函数,returns None

当你做一个赋值时,你说的是“哈希值 a 等于 print("avc") returns”

这意味着 print("avc") 被调用(这就是为什么你看到打印的值)并且它 returns None,所以 a 的值是 None 在你的字典.

Print 没有 return 值。

想象一下它的定义是这样的

(void) print(object):
   do magic io stuff to make object appear in the console

因此,当您为字典中的键 'a' 分配 print('avc') 时,它会得到一个 none。

因为您在创建字典时调用了函数print。您将 calls 的结果存储在字典中,而不是 function print。因此,您的字典将由代表 return 值 None 值填充 print 调用。

你应该做的是有一个像这样的结构:

d = {'abc': print} 

现在您的字典将存储实际函数 {'abc', <function print>}

然后您可以通过遍历字典的值来调用这些函数:

for str, func in d.items():
    func(str)

# prints abc

此外,您需要避免使用 dict 之类的名称作为变量。它们 mask built-in types for python (in your case the dict 内置类型)。

通常选择其他名称,例如 d