Python dask调用图:缺少必需的位置参数

Python dask调用图:缺少必需的位置参数,python,dask,Python,Dask,我希望dask调用图中的下游函数具有多个参数,但是当我调用get时,dask表示缺少位置参数 以下是一份: >>导入dask.threaded >>>dsk={'in':2,'f1':(λx:(x**2,x**3),'in'),'out':(λx2,x3:(x2,x3),'f1')) >>>dask.threaded.get(dsk,“out”) 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 文件“/home/nathan/GLOBAL/lib/python3.6/site packag

我希望dask调用图中的下游函数具有多个参数,但是当我调用
get
时,
dask
表示缺少位置参数

以下是一份:

>>导入dask.threaded
>>>dsk={'in':2,'f1':(λx:(x**2,x**3),'in'),'out':(λx2,x3:(x2,x3),'f1'))
>>>dask.threaded.get(dsk,“out”)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/home/nathan/GLOBAL/lib/python3.6/site packages/dask/threaded.py”,第76行,在get中
pack_uexception=包\u异常,**夸格)
文件“/home/nathan/GLOBAL/lib/python3.6/site packages/dask/local.py”,第462行,在get_async中
raise_异常(exc、tb)
文件“/home/nathan/GLOBAL/lib/python3.6/site-packages/dask/compatibility.py”,第112行,重新登录
加薪
文件“/home/nathan/GLOBAL/lib/python3.6/site packages/dask/local.py”,第230行,在执行任务中
结果=_执行_任务(任务、数据)
文件“/home/nathan/GLOBAL/lib/python3.6/site packages/dask/core.py”,第119行,在执行任务中
返回函数(*args2)
TypeError:()缺少1个必需的位置参数:“x3”
如何让函数在不使用
*args
的情况下接受多个参数?

输出
(x**2,x**3)
是一个不会自动解包的
元组;就像将一个
元组
传递给具有多个参数的函数一样

但是,如果您不喜欢
*args
,可以做的一件事是显式地解压元组:

In[21]:def out(x):
…:x2,x3=x
…:返回(x2,3*x3)
...:
In[22]:dsk={'In':2,'f1':(λx:(x**2,x**3),'In','out':(out,'f1'))
In[23]:dask.threaded.get(dsk,'out')
Out[23]:(4,24)
或者,如果您不介意仅通过索引访问元素:

In[27]:dsk={'In':2,'f1':(λx:(x**2,x**3),'In'),'out':(λx:(x[0],3*x[1]),'f1'))
In[29]:dask.threaded.get(dsk,'out')
Out[29]:(4,24)

虽然我不喜欢,但从我今天早些时候的实验来看,这就是答案。谢谢你,福格勒
>>> import dask.threaded
>>> dsk = {'in':2, 'f1': (lambda x:(x**2, x**3), 'in'), 'out':(lambda x2,x3:(x2,x3), 'f1')}
>>> dask.threaded.get(dsk, 'out')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/nathan/GLOBAL/lib/python3.6/site-packages/dask/threaded.py", line 76, in get
    pack_exception=pack_exception, **kwargs)
  File "/home/nathan/GLOBAL/lib/python3.6/site-packages/dask/local.py", line 462, in get_async
    raise_exception(exc, tb)
  File "/home/nathan/GLOBAL/lib/python3.6/site-packages/dask/compatibility.py", line 112, in reraise
    raise exc
  File "/home/nathan/GLOBAL/lib/python3.6/site-packages/dask/local.py", line 230, in execute_task
    result = _execute_task(task, data)
  File "/home/nathan/GLOBAL/lib/python3.6/site-packages/dask/core.py", line 119, in _execute_task
    return func(*args2)
TypeError: <lambda>() missing 1 required positional argument: 'x3'