改变来自同一基类的2个对象的propiety

时间:2018-01-06 06:30:58

标签: python class inheritance

我正在为我的实验物理课程制作一个更简单的numpymatplotlibscipy等界面。我创建了一个名为E_dat的类,它需要一些数据和不确定性,并且可以返回数据的统计信息,如max,min,standard deviation ......这是类:

class E_Dat(object):

    def __init__(self, data, error = None, data_type = "foo"):
        self.data = np.array(data)
        self.error = np.array(error)
        self.shape = self.data.shape
        self.Mean = np.mean(data)
        self.Max = np.max(data)
        self.Min = np.min(data)
        self.STD = np.std(data)
        self.data_type = data_type

        if self.data.shape != self.error.shape and self.data_type != "foo":
            raise ValueError('data.shape y error.shape no coinciden')

        if self.data_type == "2d_plot" and self.data.ndim != 2:
            raise ValueError('data.shape no es 2d, no puede graficarse')

        if self.data_type == "hist" and self.data.ndim != 1:
            pass

    def get_data(self):
        return self.data

    def get_error(self):
        return self.error

    def get_shape(self):
        return self.shape

    def get_mean(self):
        return self.Mean

    def get_max(self):
        return self.Max

    def get_min(self):
        return self.Min

    def get_std(self):
        return self.STD

现在我想创建一个Plot类,对于简单的图,所以我不必每次都编写代码,Plot类将继承E_Dat的属性class,我不知道如何处理该类,因为例如我需要来自同一基类的两个1D E_Dat对象,并且我只能从同一个类继承一个对象。我可以从同一个类的对象列表继承吗?

1 个答案:

答案 0 :(得分:0)

这似乎不需要继承:

class MyPlot():

    def __init__(self, e_dat1, e_dat2):
        self.e_dat1 = e_dat1
        self.e_dat2 = e_dat2

使用e_dat1e_dat2两个E_Dat个对象。