迭代创建子类并将对象存储为类属性

问题描述 投票:0回答:2

我有一个类,它执行一些复杂的计算并生成一些结果MyClass.myresults

[MyClass.myresults实际上是具有不同属性的类本身(例如,MyClass.myresults.mydf1MyClass.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

非常欢迎使用不同方法的建议,我是班上的新手,我不确定这是可以接受的方法还是做得不好(笨拙,内存效率低下或其他)。

我有一个类,它执行一些复杂的计算并生成一些结果MyClass.myresults。 MyClass.myresults实际上是具有不同属性的类本身(例如,MyClass.myresults.mydf1,...

python class subclass
2个回答
1
投票

使用此方法有两个问题,第一个是,Result


0
投票

所以我用setattr解决了它:

© www.soinside.com 2019 - 2024. All rights reserved.