回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有一个叫做“数据包”的类,如下所示。我试图实例化它,以便使用方法<code>getAcc</code>和<code>getRot</code>返回的值。我还包括在“main”中创建数据包类实例的代码
我得到这个错误:</p>
<pre><code>Traceback (most recent call last)
mydata = data_packet()
TypeError: __init__() takes exactly 2 arguments (1 given)
</code></pre>
<p>我的假设是,实例正在将<code>mydata</code>传递给名为self的参数,但没有传递给l。如果我是正确的,我如何解决这个错误?你知道吗</p>
<pre><code>class data_packet (object):
def __init__(self, l):
self.data = [0,0,0,0,0,0,0,0,0]
self.type = ord(l[2])
if self.type == 0: # accel
self.data[0] = four_bytes(l[3],l[4],l[5],l[6]) * 1.0 / (1<<16)
self.data[1] = four_bytes(l[7],l[8],l[9],l[10]) * 1.0 / (1<<16)
self.data[2] = four_bytes(l[11],l[12],l[13],l[14]) * 1.0 /(1<<16)
elif self.type == 6: # heading
self.data[0] = four_bytes(l[3],l[4],l[5],l[6]) * 1.0 / (1<<16)
else: # unsupported
pass
def display(self):
if self.type == 0:
print 'accel: %7.3f %7.3f %7.3f' % \
(self.data[0], self.data[1], self.data[2])
elif self.type == 6:
print 'heading: %7.4f' % self.data[0]
else:
print 'what?'
def getAcc(self):
while self.type == 0:
.....dosomethings....
return accelData
def getRot(self):
while self.type == 5:
..... dosomethings....
return rotData
def main():
mydata = data_packet()
mydata.getAcc()
mydata.getRot()
print "********* : ", mydata.getAcc()
if __name__ == "__main__":
main()
</code></pre>