我有4个共享变量。我正在更新一对基于哪个进程跑步。跟着是密码。在
class App(multiprocessing.Process):
def __init__ (self,process_id):
multiprocessing.Process.__init__(self)
self.process_id = process_id
def run(self,X,Y,lock):
while True:
with lock :
#some calculations which returns x and y
print 'x and y returned are :',x,y
try:
X.value = x
Y.value = y
except Exception ,e:
print e
if __name__ == '__main__':
xL = Value('d',0.0)
xR = Value('d',0.0)
yL = Value('d',0.0)
yR = Value('d',0.0)
lock = Lock()
a = A('1')
b = B('2')
process_a = Process(target = a.run, args(xL,yL,lock, ))
process_b = Process(target = b.run, args(xR,yR,lock, ))
process_a.start()
process_b.start()
这是输出:
x and y returned are : 375 402
'float' object has no attribute 'value'
有什么帮助吗?在
看看我用括号中的数字注释的代码的三个部分:
当您跟踪代码的执行时,可以看到它正试图访问函数
Value
返回的任何对象中名为value
的属性。您的错误消息告诉您,Value
正在返回float
对象,这些对象没有value
属性。在以下情况之一(最有可能)对您不利:
Value
并没有按照您所想的那样做,它在不该做的时候返回float相关问题 更多 >
编程相关推荐