我想创建一个回调,在特定的url上执行getPage
,并在操作完成时将其打印出来。目前,当我打印d
或page
(请参阅下面的代码)时,我得到延期对象的参考文献与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()
我最终创建了一个打印函数,将getPage添加到延期,并附加一个回调延迟..找出来了,但它可能是错误的,它的工作原理。 :d – user1675884