【发布时间】:2015-05-23 00:26:51
【问题描述】:
我有一个类 A 有两个方法,method_one 使用 defer 和 method_two ,在回调函数中,我为 self.value 设置了一个值并将其添加到 defer 的回调链中。但之后 self.value 仍然是 method_two 中的原始值。总之,回调函数中self.value的赋值是无效的。
from twisted.internet import utils, reactor
class A(object):
def __init__(self):
self.value = []
def method_one(self):
d = utils.getProcessOutput('/bin/sh', ('-c', 'ls /home')) # return a defer
def set_self_value(result):
self.value = result.split() # assign result.split() to self.value
d.addCallback(set_self_value)
def method_two(self):
print self.value # it is still [] rather than result
a = A()
a.method_one()
a.method_two()
reactor.run()
output:
[] # i expect self.value is ['lost+found', 'user']
lost+found
user
提前感谢 :-)
【问题讨论】:
-
result在调用set_self_value时似乎不包含任何内容。
标签: python twisted twisted.internet