使用命名参数,我如何告诉接收器方法使用参数的“未提供”版本?发送 None 不起作用。以下是我的具体代码,特别注意以下部分:
args=launch[1:] if launch[4] is not None else None
如果可能的话,我想保留列表理解
procs = [Process(name=key, target=launch[0],
args=launch[1:] if launch[4] is not None else None)
for key, launch in zip(procinfos.keys(), launches)]
结果是选择了单参数版本的进程,然后抱怨 args 为 None:
File "<stdin>", line 15, in parallel
for key, launch in zip(procinfos.keys(), launches)]
File "/usr/lib/python2.7/multiprocessing/process.py", line 104, in __init__
self._args = tuple(args)
TypeError:“NoneType”对象不可迭代
当然有一种蛮力方法:即复制部分理解并简单地避免指定 args= 参数。我可能最终会走那条路..除非在这里神奇地出现替代方案;)