这是如何工作的:
def writer():
title = "Mr"
name = (lambda x: title + ' ' + x)
return name
writer("Bond")
Traceback (most recent call last):
File "<input>", line 1, in <module>
TypeError: writer() takes 0 positional arguments but 1 was given
who = writer()
who("Bond")
'Mr Bond'
所以lambda把位置参数x取对了?通过将函数object writer()赋给“who”,我不知何故可以访问lambda?在
如果返回的是函数,则外部函数在使用
__closure__
方法创建闭包时关闭,因此仍然存在对title
的引用,因此它可以在内部函数中使用:如果使用以下函数工厂,它接受输入
^{pr2}$e
,这是一个指数,您希望将内部函数中的x
提升为:在第一个函数中,不接受任何参数,因此不能传递任何参数。您只需返回lambda函数,该函数接受一个位置参数。在
您试图通过向writer传递一个参数,这与定义一个不带参数并尝试传递一个参数的普通函数没有什么不同。在
相关问题 更多 >
编程相关推荐