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

ber*_*436 2 python

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

ftp.retrlines("RETR " + filename, lambda s, w=outfile.write: w(s+"\n"))
Run Code Online (Sandbox Code Playgroud)

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

另外,我理解lambdas在这里解释(看起来非常类似于javascript匿名函数回调)但是没有看到如何将其应用于这种情况,其中lamda s在第二个参数中定义 为什么Python lambdas有用?

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

Som*_*ude 6

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

retrlines函数传递两个参数:

"RETR " + filename
Run Code Online (Sandbox Code Playgroud)

lambda s, w=outfile.write: w(s+"\n")
Run Code Online (Sandbox Code Playgroud)