[Tutor] Callbacks in Python
Alan Gauld
alan.gauld at btinternet.com
Thu Aug 27 10:07:41 CEST 2009
"Jramak" <jramak345 at gmail.com> wrote
> I'm confused by callbacks. I would really appreciate any introduction or
> help in understanding the concept of callbacks.
Callbacks are used in all sorts of different ways in programming
so it might help to undertand what exactly confuses you.
Is it the whole concept of a callback?
Is it the idea of a function as an object?
Is it the use of callbacks?
In a GUI? In a networking framework like Twisted?
Do you want to use someone elses callback mechanism
or do you want to create your own?
The basic name comnes from the concept of calling
someone, asking them to do someting then call you back
when they are done. So you leave your number with them.
The number you leave is what they "call back".
In programming you call a function and at some critical
point that function calls you back on the function that
you passed in.
def someFunction(value, callback)
result = pow(value,2)
callback(result)
def myFunction()
v = 42
someFunction(v, myFunction_continue)
def myFunction_contiinue(result)
print result
myFunction()
This was very useful before threading environments became
common as a way of simulating multi threading. Then when GUIs
came along it bacame a common way of associating functions
with widgets. And in networking we can associate network events
with functions in a similar way. In fact any kind of event driven
program is likely to use callbacks as a way of distributing control
depending on event type. The typical implementation will see the
event framework storing the callbacks in some kind of dictionary
keyed by event type.
HTH,
--
Alan Gauld
Author of the Learn to Program web site
http://www.alan-g.me.uk/
More information about the Tutor
mailing list