lambda在这个python代码中做什么?

时间:2014-02-14 05:32:11

标签: python

我试图真正理解这行python中发生的事情,让它将传入的数据拉到字符串而不是将其写入outfile。

ftp.retrlines("RETR " + filename, lambda s, w=outfile.write: w(s+"\n"))

看起来retrlines正在获取命令和回调 - 但是还有一个额外的第三个参数。它在做什么?

另外,我理解lambda如此处所解释的(看起来与javascript匿名函数回调非常相似)但是没有看到如何将其应用于这种情况,其中lamda s在第二个参数中定义Why are Python lambdas useful? < / p>

这个python代码中发生了太多不常见的事情。有人可以解释这一行中发生的事情。

1 个答案:

答案 0 :(得分:6)

没有retrlines函数的可选第三个参数,而是lambda的可选第二个参数。

retrlines函数传递两个参数:

"RETR " + filename

lambda s, w=outfile.write: w(s+"\n")