, (, , ), , . , . . , getPage - , urllib.urlopen. , , ( .) len() , ( .)
Twisted Deferreds, . getPage a Deferred, " ". , , Deferred, Deferred , . , :
def web_request(request)
def callback(data):
HttpResponse(len(data))
d = getPage("http://www.example.org")
d.addCallback(callback)
return d
, web_request . , getPage, ? - web_request ? web_request ? , ? ( Twisted Deferred - , getPage, . , . )
Deferreds, , , , : twisted.internet.defer.inlineCallbacks. Python 2.5, , :
@defer.inlineCallbacks
def web_request(request)
data = yield getPage("http://www.example.org")
HttpResponse(len(data))
, d Deferred, , , web_request - defer.inlineCallbacks , Deferred.