[Tutor] Callbacks in Python
Lie Ryan
lie.1296 at gmail.com
Thu Aug 27 09:47:49 CEST 2009
Jramak wrote:
> Hello
>
> I'm confused by callbacks. I would really appreciate any introduction or
> help in understanding the concept of callbacks.
By example:
def callback(nums):
""" The callback function """
return sum(nums) * 2
def another_callback(nums):
""" Yet another callback function """
return sum(nums) * 3
def strange_sum(nums, cb):
"""
Returns the sum, if less than 10
else returns the result of calling the callback function cb(),
which must accepts one list argument
"""
if sum(nums) > 10:
return sum(nums)
else:
return cb(nums)
print strange_sum([1, 3, 4, 2, 4], callback)
print strange_sum([3, 5, 4, 2], another_callback)
So basically, a callback is a function that you passes as an argument
(to another function) that may be called when a certain condition
happens. In GUI-related stuff, callbacks are called when a certain
events happens (e.g. a button is clicked).
For the note, there are two main reasons why you want to pass a function
to another function:
1. For callbacks, as explained and reasoned above.
2. To modify the passed functions, this case is known as decorator.
More information about the Tutor
mailing list