我必须获得一个类外的两个变量的值,但我没有任何运气。
我有这样的事情:
class AttentionDataPoint(DataPoint):
def __init__(self, _dataValueBytes):
DataPoint.__init__(self, _dataValueBytes)
self.attentionValue = self._dataValueBytes[0]
def __str__(self):
return "Attention Level: " + str(self.attentionValue)
class MeditationDataPoint(DataPoint):
def __init__(self, _dataValueBytes):
DataPoint.__init__(self, _dataValueBytes)
self.meditationValue = self._dataValueBytes[0]
我尝试过:
Att = AttentionDataPoint()
Value = Att.__init__(attentionValue)
对于另一个相同的变量也一样,但python要求我找不到位置参数:_dataValueBytes
但我真的无法解决问题。
数据点类是:
Class DataPoint:
def __init__(self, dataValueBytes):
self._dataValueBytes = dataValueBytes
答案 0 :(得分:0)
当你写下来时:
Att = AttentionDataPoint()
您正在创建该类的实例,如果您查看该类的init函数,您将看到它需要一个参数才能初始化(DataValueBytes)。
当你创建一个实例时,它会自动调用init函数,我认为这就是你混淆的地方(你以后不需要明确地调用它)。
在初始化类之后,您需要做的就是访问变量:
Att.attentionValue
答案 1 :(得分:0)
假设attentionValue
是您要传递给__init__
的初始值,您可以这样称呼它:
att = AttentionDataPoint(data)
当您像这样调用类时,self
会自动作为第一个位置参数传递。当您在第二个示例中直接调用__init__
时,您只传递一个python指定给self
的参数,因此它会抱怨缺少_dataValueBytes
参数。
我无法说出data
应该是什么。无论你传递的是什么都被映射到类中的_dataValueBytes
,所以也许这个名字会给你一个预期的线索。
一旦你能够正确构建对象,获取数据非常简单,因为它只是简单地查找属性:
att_value = att.attentionValue