>>> from twisted.internet.defer import Deferred
>>>
>>> def whoisit(d):
... for cb,eb in d.callbacks:
... func, arg, kwarg = cb
... args = ['...']
... args.extend([repr(x) for x in arg])
... args.extend(['%s=%r'%(k,v) for k,v in kwarg.items()])
... yield '%s.%s(%s)' % (
... func.__module__,
... func.func_name,
... ','.join(args),
... )
...
>>>
>>> d = Deferred()
>>> def foo(result, arg1):
... return result + arg1
...
>>>
>>> def bar(result, arg1):
... return result - arg1
...
>>>
>>> d.addCallback(foo, 2)
<Deferred at 0x3d6af8>
>>> d.addCallback(bar, 3)
<Deferred at 0x3d6af8>
>>> print '<Deferred at 0x%x %s>' % (id(d), ' -> '.join(whoisit(d)))
<Deferred at 0x3d6af8 __main__.foo(...,2) -> __main__.bar(...,3)>