【发布时间】:2020-05-25 14:36:58
【问题描述】:
我有一个类进行一些复杂的计算并生成一些结果MyClass.myresults。
MyClass.myresults实际上是一个具有不同属性的类本身(例如MyClass.myresults.mydf1、MyClass.myresults.mydf2。
现在,我需要按照场景列表迭代运行MyClass (scenarios=[1,2,[2,4], 5]。
这发生在一个简单的循环中:
for iter in scenarios:
iter = [iter] if isinstance(iter, int) else iter
myclass = MyClass() #Initialize MyClass
myclass.DoStuff(someInput) #Do stuff and get results
results.StoreScenario(myclass.myresults, iter)
并在每次迭代结束时存储MyClass.myresults。
我想创建一个单独的类 (Results),它在每次迭代时都会创建一个子类 scenario_1, scenario_2, scenario_2_4 并在其中存储 MyClass.myresults。
class Results:
# no initialization, is an empty container to which I would like to add attributes iteratively
class StoreScenario:
def __init__(self, myresults, iter):
self.'scenario_'.join(str(iter)) = myresults #just a guess, I am assuming this is wrong
非常欢迎提出不同方法的建议,我对课程很陌生,我不确定这是否是一种可接受的方法,或者我是否在做一些糟糕的事情(笨重、内存效率低下或其他)。
【问题讨论】: