通过“学习Python”工作遇到了工厂函数。这个教科书中的例子起作用:
def maker(N):
def action(X):
return X ** N
return action
>>> maker(2)
<function action at 0x7f9087f008c0>
>>> o = maker(2)
>>> o(3)
8
>>> maker(2)
<function action at 0x7f9087f00230>
>>> maker(2)(3)
8
然而,当我深入到另一个层次时,我不知道如何称呼它:
^{pr2}$为什么superfunc(1)(2)(3)
不起作用而maker(2)(3)
起作用?在
虽然这种嵌套在我看来不是一个好的、可用的代码,但是Python仍然接受它为有效的,所以我很好奇如何调用它。在
修正了superfunc,并给出了一个调用示例
您的}。在
superfunc
中的某个地方缺少返回值:return
表示subfunc
,但没有{得到一个
TypeError
,因为函数func
不返回任何内容(因此它的返回值是NoneType
)。它应该返回subfunc
:相关问题 更多 >
编程相关推荐