为 urlretrieve 的第三个参数的可调用函数添加额外的参数
Add additional argument to callable function for urlretrieve's 3rd parameter
我有一个使用以下代码下载文件的功能:
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?
使用 lambda
urllib.request.urlretrieve(url, filename,
lambda blocknum, blocksize, totalsize: Handle_Progress(dlg, blocknum, blocksize, totalsize)
)
我有一个使用以下代码下载文件的功能:
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?
使用 lambda
urllib.request.urlretrieve(url, filename,
lambda blocknum, blocksize, totalsize: Handle_Progress(dlg, blocknum, blocksize, totalsize)
)