我需要某种方法来使用pool.map()中的一个函数,该函数接受多个参数。根据我的理解,pool.map()的目标函数只能有一个可迭代的参数,但是有没有办法我也可以传入其他参数呢?在这种情况下,我需要传递一些配置变量,例如Lock()并将信息记录到目标函数中。
我试图做一些研究,我认为我也许可以使用部分函数来使其工作?但是,我不完全了解这些工作原理。任何帮助将不胜感激!这是我要执行的简单示例:
def target(items, lock):
for item in items:
# Do cool stuff
if (... some condition here ...):
lock.acquire()
# Write to stdout or logfile, etc.
lock.release()
def main():
iterable = [1, 2, 3, 4, 5]
pool = multiprocessing.Pool()
pool.map(target(PASS PARAMS HERE), iterable)
pool.close()
pool.join()
您可以functools.partial
为此使用(如您所怀疑的):
from functools import partial
def target(lock, iterable_item):
for item in iterable_item:
# Do cool stuff
if (... some condition here ...):
lock.acquire()
# Write to stdout or logfile, etc.
lock.release()
def main():
iterable = [1, 2, 3, 4, 5]
pool = multiprocessing.Pool()
l = multiprocessing.Lock()
func = partial(target, l)
pool.map(func, iterable)
pool.close()
pool.join()
例:
def f(a, b, c):
print("{} {} {}".format(a, b, c))
def main():
iterable = [1, 2, 3, 4, 5]
pool = multiprocessing.Pool()
a = "hi"
b = "there"
func = partial(f, a, b)
pool.map(func, iterable)
pool.close()
pool.join()
if __name__ == "__main__":
main()
输出:
hi there 1
hi there 2
hi there 3
hi there 4
hi there 5
问题内容: 在我的我有一个按钮。我想通过在方法中传递多个参数来为其添加动作。 问题答案: 也许你可以做这样的事情 根据您的要求创建标签值并保持其完整性。
问题内容: 在采用可变数目从该给出的函数被调用iterables的。 如果我有一个生成元组的生成器,这些元组通常在原位打开,该如何命名? 以下代码不起作用,因为每个生成的元组均作为map的不同参数给出: 没有生成器,要映射的所需参数可能如下所示: 问题答案: 您需要删除的电话: 这将调用,时间,应在何处接受一个参数。 在Linux上 ,如果要接受两个参数,则可以使用lambda调用,例如:
问题内容: 我的字符串中某些地方包含数字,并且我正尝试用其单词符号替换此数字(即3-> 3)。我有一个功能可以做到这一点。现在的问题是找到字符串中的数字,同时保持字符串的其余部分不变。为此,我选择使用该函数,该函数可以接受“ callable”。但是,传递给它的对象是内部对象,我不确定如何处理它。我的函数接受数字或其字符串表示形式。 我应该如何编写一些辅助函数,该函数可用于将调用与执行所需处理的函
我试图找出是否有可能传递一个JSON对象RestAPI,或传递多个参数到该API?如何在Spring中读取这些参数?让我们假设url看起来像下面的例子: 例1<代码>http://localhost:8080/api/v1/mno/objectKey?id=1 传递下面url中的JSON对象是否有效? 例2<代码>http://localhost:8080/api/v1/mno/objectKey
问题内容: 我尝试了以下失败的尝试: 在函数a中,我可以使用arguments关键字来访问参数数组,而在函数b中,这些参数将丢失。有没有办法像我尝试的那样将参数传递给另一个javascript函数? 问题答案: 用于对in函数具有相同的访问权,如下所示:
问题内容: 在多处理库中,是否存在的变体,它支持多个参数? 问题答案: 答案取决于版本和情况。首先描述了最近版本的Python(从3.3开始)的最一般的答案。它使用方法,该方法接受一个参数元组序列。然后,它会自动将每个元组的参数解包,并将其传递给给定的函数: 对于早期版本的Python,您需要编写一个辅助函数来显式解压缩参数。如果要使用with,则还需要编写一个包装器以变为Pool上下文管理器。(