[Tutor] Script Feedback
Steven D'Aprano
steve at pearwood.info
Thu Apr 1 00:40:14 CEST 2010
On Wed, 31 Mar 2010 10:54:34 am Damon Timm wrote:
> > Separate the underlying functionality from the application-level
> > code. These functions should NEVER print anything: they do all
> > communication through call-backs, or by returning a value, or
> > raising an exception.
>
> I tried to implement this, however, I am not sure how the 'callback'
> works ... is that just a function that a user would pass to *my*
> function that gets called at the end of the script?
Not necessarily at the end of the script.
You usually find callbacks used a lot in coding for graphical user
interfaces (GUIs). For instance, the GUI framework might provide a
Button class. The caller creates a new Button object, and provides a
callback function which gets called automatically by the framework
whenever the user clicks the button.
The built-in function map is very similar. map is more or less
equivalent to the following:
def map(callback, sequence):
result = []
for item in sequence:
result.append(callback(item))
return result
except the real map is more efficient, and accepts multiple sequences.
It's not common to describe the function argument to map as a callback,
but that's essentially what it is. In this example, the callback
function needs to be a function that takes a single arbitrary argument.
The caller can pass any function they like, so long as it takes a
single argument, and map promises to call that function with every item
in the sequence.
There's nothing special about callbacks, except that they have to take
the arguments which the library function promises to supply.
--
Steven D'Aprano
More information about the Tutor
mailing list