我的代码有问题。我正在使用thread
运行此代码,然后我需要询问变量SPEED等,但是我不知道如何。我仍在尝试这样做,但是thread
出现错误。
顺便说一句,我想创建一个脚本来生成虚假的汽车数据,我需要填充数据库,然后绘制一些图表。
import time
import thread
class Test:
def __init__(self):
self.speed = 0
self.dist = 0
self.maxSpeed = 150
self.time = 6
self.fuel = 100
self.distance = 100
self.start = time.time()
self.elapsed = 0
def jazda(self):
while True:
self.speed += 1
if self.speed < self.maxSpeed:
time.sleep(1)
else:
time.sleep(60)
self.elapsed = time.time() - self.start
self.dist = (self.speed * self.elapsed) / 3600
print "Distance: ", self.dist
print "Speed: ", self.speed
print "Time: ", self.elapsed
if self.elapsed > self.time:
break
return 0
def SPEED(self):
return self.speed
和第二个脚本:
import test
import thread
import time
class Data:
def __init__(self):
self.test = test.Test()
def get_speed(self):
while True:
return self.test.SPEED()
time.sleep(2)
thread.start_new_thread( test.Test().jazda(), () )
thread.start_new_thread( obdData().get_speed, () )
我得到的错误是:
thread.start_new_thread( Test().jazda(), () ) TypeError: first arg must be callable
答案 0 :(得分:0)
我认为问题在于thread.start_new_thread
方法需要方法引用,而不是方法调用,即test.Test().jazda
是方法引用,即可调用;但是,test.Test().jazda()
将返回该方法的结果(在这种情况下为0)不是可调用的。您的启动方法应类似于thread.start_new_thread(test.Test().jazda, ())