python-3.x 在另一个类中使用数据类的正确方法

djp7away  于 2023-02-14  发布在  Python
关注(0)|答案(1)|浏览(119)

问完我的最后一个问题后,我似乎还没有真正理解类和数据类。所以我想学习做以下事情的正确方法:
1.定义数据类
1.定义其他类,该类将使用数据类的示例
1.使用第二个类中的方法更新数据类的值
我这样做的方式给了我一个错误,说我的数据不存在。我创建了一个数据类内的方法,使用它导致一个错误,说它是只读的。

@dataclass(slots=True)
def Storage():
   timestamp: float
   value: float

class UDP():
    some attributes
    self.datastorage: Storage = Storage()

    def updatedata(self, time, val):
        self.datastorage.timestamp = time
        self.datastorage.value = val

def main():
    test = UDP()
    test.updatedata(0.01,2)

因此,我的问题是如何在另一个类中示例化一个数据类,并能够操作该数据类中的值?

z0qdvdin

z0qdvdin1#

您的代码有几个语法问题。一旦这些问题得到解决,代码就可以正常工作。Storage对象是可变的,您可以自由地修改它们的timestampvalue属性。

In [7]: @dataclass(slots=True)
   ...: class Storage:
   ...:    timestamp: float
   ...:    value: float
   ...:
   ...:
   ...: class UDP:
   ...:     datastorage: Storage = Storage(0.0, 0.0)
   ...:
   ...:     def updatedata(self, time, val):
   ...:         self.datastorage.timestamp = time
   ...:         self.datastorage.value = val
   ...:
   ...: def main():
   ...:     test = UDP()
   ...:     test.updatedata(0.01,2)
   ...:

In [8]: main()

相关问题