这是我的第一篇文章。我已经为这个问题苦苦挣扎了一段时间,希望能对您有所帮助。一段时间以来,我的Pythoning也一直处于不受限制的状态,我对所有批评和启发都敞开心open。
我正在开发执行模型(Bar)的Python库。理想情况下,用户只需要实例化Bar对象即可运行模型。子类Foo创建了许多Foos中的一种,这是计算密集型的,因此需要并行处理。 Foo将具有同级,而Bar也将定义同级。 Foo最终可能会有更多输入,这就是为什么我需要悲痛支持多个输入的原因。
from pathos.multiprocessing import ProcessingPool as Pool
import pandas as pd
import numpy as np
class Bar:
"""
Bar is the parent class for Foo and other children
"""
def __init__(self, saveResult = False):
self.saveResult = saveResult
self.listWithFooNumers = [1,2,3]
def makeFoos(self):
Pool().map(Foo, self.listWithFooNumers)
class Foo(Bar):
"""
Foo is a class used to create many Foos when Bar is executed.
"""
def __init__(self, FooNumber):
super().__init__()
resultDF = pd.DataFrame()
resultDF["values"] = np.full(10,FooNumber * 2)
if self.saveResult is True:
resultDF.to_csv(str(FooNumber) + ".csv")
这就是我希望执行代码的方式:
Bar(saveResult = True).makeFoos()
我的问题:
1)如何在上面的行中获得所需的行为(保存三个csv)?
2)什么是最佳/更好的做法?
当前,该代码仅在我对Bar kwarg进行硬编码时才有效:saveResult = True。