如何使用嵌套数据创建python类?

时间:2016-11-02 04:00:28

标签: python python-3.x oop

我试图弄清楚如何在python中构建一个我有嵌套变量的类。

在实践中,我们正在测量一种名为" Device"的东西。每个"设备"有多个物理测量位置称为" Wells"。每个"嗯"在不同时间测量"间隔"。

我一直在尝试用Python创建一个类来创建一个名为" Device"的对象。每个设备可能有多个"间隔"我把它列入了一个清单。我遇到困难的部分是如何将来自特定井的测量数据与特定间隔相关联。

我的数据看起来像这样:

Device1 -> 0hr -> Well 1 -> Data
Device1 -> 0hr -> Well 2 -> Data
Device1 -> 1hr -> Well 1 -> Data
Device1 -> 1hr -> Well 2 -> Data

值得注意的是,每个设备的间隔数和孔数是可变的。

我知道它并不多,但到目前为止我已经拥有了。

class device(object):
    def __init__(self, name):
        self.name = name
        self.intervals = []

    def add_interval(self, interval):
        self.intervals.append(interval)

def main():
    d1 = device('Control')
    d1.add_interval(0)
    d1.add_interval(24)
    d1.add_interval(48)
    print(d1.intervals)

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:1)

如果您正在寻找基于类的设计,您可以选择以下内容:

    class interval():
        def __init__(self, interval, wells):
            self.interval = interval
            self.wells = wells

    class well():
        def __init__(self, name, data):
            self.name=name
            self.data = data

    class device(object):
        def __init__(self, name):
            self.name = name
            self.intervals = []

        def add_interval(self, interval_value):
            self.intervals.append(interval(interval_value))

    def main():
        d1 = device('Control')
        d1.add_interval(0)
        d1.add_interval(24)
        d1.add_interval(48)
        print(d1.intervals[1].interval)

通过这种方式,您将能够访问数据w.r.t层次结构。 当然,您必须添加更多方法才能正常工作。我只是给出一个粗略的想法。 或者您也可以使用基于字典的存储,其中您的间隔是dicts,其中的井也是键,与这些井相关的数据是值。它会更简单,但如果有更多的实体在玩,可能会变得混乱。