引用稍后要创建的对象

时间:2019-07-11 09:58:07

标签: python

我有多个对象,它们与class Curve的单个度量相对应,还有一个对象用于整个测量系列,例如class SeriesSeries个对象引用了Curve个对象,但是每个Curve也有一个reference回到其Series

当前,我首先创建Series对象s,然后根据数据创建Curve对象c1, c2,..,同时给它们返回对s的引用,最后将c1, c2,..分配给s。但是,这意味着我之后必须手动处理s的初始化内容。

我想先创建Curve对象,然后以某种方式为它们提供一个引用,以后可以用Series进行填充,而不必在每个对象中都进行更新。

编辑:它是如何发生的。

class Curve:
    def __init__(self, series ):
        self.series=series

class Series:
    def __init__(self, curve_list=None):
        self.curve_list=curve_list


def read_data(folder):

    #create a new Series object
    new_series = Series()

    #create Curves objects given the folder where the data is saved, and the reference to a series object
    new_curves = createCurves(folder, new_Series)

    #assign the new Curve objects to the series object
    new_series.curve_list = new_curves
    #prepare the Series object for use, which needs the information of the Curve objects
    new_series.do_some_things()

1 个答案:

答案 0 :(得分:0)

我首先用空的Series初始化曲线,然后在实际初始化序列时填充该Series。像这样:

class Curve:
    def __init__(self, series=None):
        self.series = series

class Series:
    def __init__(self, curve_list=None):
        self.curve_list = curve_list
        for curve in curve_list:
            curve.series = self

这与您的建议类似,但是相反。但是通过这种方式,您可以创建一串没有关联序列的曲线,并根据需要准备它们。然后,您可以从所有曲线中创建一个序列,并在有足够信息的情况下将该序列添加到所有曲线中。