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