我想将concurrent
Python模块的Future类作为子类。在
文件:
The Future class encapsulates the asynchronous execution of a callable. Future instances are created by Executor.submit().
Executor
的文档没有解释它从何处获取Future
类。在
。。。怎样才能使执行人.提交()强迫我参加我的未来课程?在
我喜欢OOP,因为它可以创建可读的代码。我希望结果如下:
for my_future in concurrent.futures.as_completed(...):
my_future.my_custom_method()
查看代码ProcessPoolExecutor.submit()和ThreadPollExecutor.submit(),} 中定义。在
Excutor.submit()
返回一个Future实例,它在^{所以,诀窍来了。您可以子类化并替换原来的Future,然后在子类中添加自定义方法。在
这是可行的,但不推荐。为此,最好使用组合而不是继承。在Learn Python the Hard Way中有一个关于继承和组合的好章节
回到问题上来,下面是一个作文示例: 在
然后您可以将
MyClass
子类化并实现不同的done方法。在Future
具体类的使用被硬连接到Executor.submit()
(无论是针对processes还是{a2})。因此,我认为不可能完全按照你的要求去做。但是,您可以从传递给Executor.submit()
的可调用文件返回任何结果。因此,请将自定义方法放在自定义返回类中:编辑或者,如果真的希望内部循环干净,请将最后两行更改为:
^{pr2}$generator expression}获取期货的迭代器,并为您提供这些期货结果的迭代器。然后可以循环查看这些结果。在
(f.result() ... (futures))
从{相关问题 更多 >
编程相关推荐