Это мой первый пост.Я боролся с этой проблемой некоторое время и был бы признателен за любую помощь.Мой Pythoning также некоторое время не проверялся, и я открыт для любой критики и просвещения.
Я работаю над созданием библиотеки Python, которая выполняет модель (Bar).В идеале, пользователю нужно только создавать экземпляры объектов 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) Что такое лучшая / лучшая практика?
В настоящее время код работает, только если я жестко закодировал бар kwarg: saveResult = True.