python joblib的使用

被包装函数有参数

from joblib import Parallel, delayed

host = "127.0.0.1"
url = "login"

def send_req(host, url):
    print(host, url)

def run_send_req(host, url, thread):
    Parallel(n_jobs=thread)(delayed(send_req)(host,url) for _ in range(thread))

if __name__ == '__main__':
    run_send_req(host, url, 2)

被包装函数无参数

import time
from joblib import Parallel, delayed
from tqdm import tqdm


#被包装的函数没有参数,也要加一个arg
def task_demo(arg):
    time.sleep(1)
    return time.time()

if __name__ == '__main__':
    num_jobs = 15
    num_threads = 3

    results = Parallel(n_jobs=num_threads)(
        delayed(task_demo)(arg) for arg in tqdm(range(num_jobs))
    )




"""
Q:
def task_demo(arg)中的(arg)在本函数中并没有使用,但是为什么删除后会报错呢
A:
在示例代码中,task_demo 函数的参数 arg 被传递给了 delayed 装饰器并在后面的循环中使用。即使在 task_demo 函数内部没有直接使用 arg 参数,它仍然需要在函数定义中声明,以便在后续的调用中正确传递参数。
如果你删除了 task_demo 函数的参数 arg,那么在调用 delayed(task_demo) 时会导致错误。因为 delayed 装饰器期望接收一个函数作为参数,并将函数的参数传递给它。如果你删除了 task_demo 的参数,那么 delayed 将无法获取到参数值,从而导致错误。
因此,在示例代码中,即使在 task_demo 函数内部没有直接使用 arg 参数,你仍然需要保留函数定义中的 (arg),以确保代码能够正常运行。
"""
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值