0
好吧,所以基本上我有這個代碼工作,但我不知道爲什麼。我正在使用ftplib和retrbinary。下面是摘錄:Python:Lambda和回調函數?
def download(self):
if not self.f:
print("Can't download..... Not connected to a host")
return
FILE = self.handle_command("download")
if FILE:
#try:
self.f.retrbinary("RETR %s" % FILE, lambda block: self.handle_download(block, FILE), 1024)
print("Downloaded '%s' to cwd" % FILE)
#except:
# print("Can't download '%s'" % FILE)
def handle_download(self, block, filename):
open(filename, 'wb').write(block)
print(".")
我的問題是:在retrbinary lambda函數爲什麼我寫的「塊」拉姆達後(和冒號前),而不是「文件名」?
與之相對lambda: self.handle_download(block, FILE)
或..... lambda block, filename: self.handle_download(block, FILE)
希望這是清楚的,感謝