2012-11-19 31 views
1

我想创建一个回调,在特定的url上执行getPage,并在操作完成时将其打印出来。目前,当我打印dpage(请参阅下面的代码)时,我得到延期对象的参考文献与page的内容。getPage里面的延迟对象打印?

为什么延迟对象的内存位置在打印page和打印d之间变化?

最终,我希望这个程序循环访问我的4个网站的列表,为每个单独的连接创建回调,将它们关闭,并在每个页面准备好时打印每个页面。如果问得不多,可以证明这一点吗?

from twisted.web.client import getPage 
from twisted.internet import reactor 
from twisted.internet.defer import Deferred 

def connect(url): 
    page = getPage(url) 

print page回报<Deferred object at 0x23dcc68>

print d返回<Deferred object at 0x7f1bacacc3b0>

当前结果(使用“http://www.example.com”为例):

d = Deferred() 

d.addCallback(connect) 

reactor.callWhenRunning(d.callback, 'http://www.example.com') 

reactor.callLater(4, reactor.stop) 

reactor.run() 
+0

我最终创建了一个打印函数,将getPage添加到延期,并附加一个回调延迟..找出来了,但它可能是错误的,它的工作原理。 :d – user1675884

回答