如何在Twisted中解雇延迟?

Den*_*ane 5 python twisted deferred

我正在努力工作.我对使用延迟对象有点困惑.我看到这个推迟的正确结果,但我无法使用它.

例如

def hello(defer):
    print(defer)
Run Code Online (Sandbox Code Playgroud)

只是打电话给我

延迟到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))
Run Code Online (Sandbox Code Playgroud)

Jea*_*one 8

d = Deferred()
d.callback("the result")

def handleTheResult(result):
    print "The Deferred fired, its result is:", result
d.addCallback(handleTheResult)
Run Code Online (Sandbox Code Playgroud)

  • 它不起作用,因为你*调用*`writeLoginFailed`,而不是*传递*`writeLoginFailed`.你需要改变你的代码来说'd.addCallback(writeLoginFailed,args)`. (3认同)
  • 如果您不理解"self"在该上下文中的含义,则需要对Python语法进行基本的复习,而不是Twisted.http://docs.python.org/2/tutorial/classes.html#random-remarks (2认同)