Python 如何在Twisted中发射延迟发射?
我和twisted一起工作。我对使用延迟对象有点困惑。 我认为我在这方面的结果是正确的,但我无法处理它 比如说Python 如何在Twisted中发射延迟发射?,python,twisted,deferred,Python,Twisted,Deferred,我和twisted一起工作。我对使用延迟对象有点困惑。 我认为我在这方面的结果是正确的,但我无法处理它 比如说 def hello(defer): print(defer) 给我打印一下 延迟到0x24dv5f5当前结果:44 如何访问此结果 更新 这是我的代码,我尝试在其中触发延迟 def handleLoginFailed(self, sid, args): d = defer.Deferred() d.callback(sid)
def hello(defer):
print(defer)
给我打印一下
延迟到0x24dv5f5当前结果:44
如何访问此结果
更新
这是我的代码,我尝试在其中触发延迟
def handleLoginFailed(self, sid, args):
d = defer.Deferred()
d.callback(sid)
def writeLoginFailed(sid, args):
print("sid:", sid)
self.simpleQuery(
"""
INSERT INTO auth
(session, success, username, password, timestamp)
VALUES (%s, %s, %s, %s, FROM_UNIXTIME(%s))
""",
(sid, 0, args['username'],
args['password'], self.nowUnix()))
d.addCallback(writeLoginFailed(sid, args))
显示
回调(self,result)
,表示result
是第二个参数。但是,同样的文档无法解释self,因此必须怀疑有什么地方不对劲。如果您不理解self在该上下文中的含义,您需要对Python语法进行基本的复习,而不是扭曲。我不知道为什么,但这不起作用。我将粘贴我的代码。查看更新它不起作用,因为您正在调用writeLoginFailed
,没有传递writeLoginFailed
。您需要将代码更改为d.addCallback(writeLoginFailed,args)
。
d = Deferred()
d.callback("the result")
def handleTheResult(result):
print "The Deferred fired, its result is:", result
d.addCallback(handleTheResult)