这个joblib并行语法在做什么?这么多括号

2024-04-25 18:00:57 发布

您现在位置:Python中文网/ 问答频道 /正文

scikitlearn经常使用joblib与类似Parallel(n_jobs=n_jobs)(delayed(function)(param_to_function) for param_to_function in iterable)的调用并行化。在

This helpful question and answer表示这个双括号业务意味着第二个集合被传递给涉及第一个集合的调用所返回的任何内容,如果返回的对象是可调用的,这就很有意义。在

但是这里Parallel(n_jobs=n_jobs)返回的东西应该是Parallel对象,对吗?然后我们传递给它一个generator对象,这个对象由第二个括号中的循环给出。在这样的构造之后,您不应该直接将生成器传递给类。对象和输入之间应该有一些函数调用。或者在python中有没有使用这种语法的__some_special_function__?在

这个语法到底在做什么?在


Tags: to对象inforparamparalleljobs语法
1条回答
网友
1楼 · 发布于 2024-04-25 18:00:57

“特殊函数”可能只是一个^{} method。使用该方法的类实例可以像函数一样被调用。在这种情况下,Parallel大概定义了__call__来接受生成器。在

(注意,这并不是说像你的例子那样编写代码是个好主意。这是不必要的困惑。)

相关问题 更多 >