【发布时间】:2017-04-16 22:50:15
【问题描述】:
def func():
something
d = { 'func': func }
d['func']() # callable
d2 = { 'type': { 'func': func } }
d2['type']['func']() # not callable
d3 = { 'type': { 'func': func() } }
d3['type']['func']() # callable
d 和 d2 有什么不同?
为什么 d3 是可调用的,而 d2 是不可调用的?
此代码是可执行的,但 pycham 突出显示 d2'func' 并说 'dict object is not callable
【问题讨论】:
-
d2['func']和d3['func']都应该抛出错误。您正在抓取不存在的密钥 (func)。你的意思是d2['type']['func']和d3['type']['func']? -
另外,
something到底是什么?something可以是可调用类型。 -
函数定义在这里非常重要。所以不能只是
do something。 -
如果函数没有返回任何内容(即只是
print),d3['type']['func']将无法与后面的括号配合使用。没有return语句的函数将返回None。男孩,你不想喂None一组括号。因此,请务必返回function。 -
@OhSungCho 如果您可以添加基于 Abdou 的 cmets 的精简版函数并在您的问题中添加更多数据以供参考,那就太好了。
标签: python dictionary