为 urlretrieve 的第三个参数的可调用函数添加附加参数



我有一个函数,使用以下代码下载文件:

urllib.request.urlretrieve(url, filename, Handle_Progress)

Handle_Progress是计算进度百分比的函数。标准函数接收3个参数:

Handle_Progress(blocknum, blocksize, totalsize)

对于我的程序,我需要传递第四个参数dlg.

我试着

urllib.request.urlretrieve(url, filename, Handle_Progress(dlg))

同时生成函数头

def Handle_Progress(dlg, blocknum, blocksize, totalsize):
``` but I get the following error: 
>TypeError: Handle_Progress() missing 3 required positional arguments: 'blocknum', 'blocksize', and 'totalsize'`
How can I pass a 4th parameter to the `Handle_Progress` function?

使用λ

urllib.request.urlretrieve(url, filename, 
lambda blocknum, blocksize, totalsize: Handle_Progress(dlg, blocknum, blocksize, totalsize)
)

相关内容

最新更新