David Eppstein eppstein at
Wed Jul 2 03:42:27 CEST 2003

In article <3jc4gvgn5rb4c4008eedg958ee594lu8p2 at>,
 Tom Plunket <tomas at> wrote:

> How can I create a functor object in Python?
> What I want (being a C++ coder <g>), is to be able to create an
> object that I is callable.  The following is my attempt, but it
> doesn't work:
> class SomeClass:
>     def __init__(self):
>         self.countdown = Countdown()
>         self.countdown.SetCallback(30, lambda s=self: s.Callback)

The error is in this line.  Should be s.Callback().
As it is, your lambda is a function that returns a function object, 
rather than calling it as you apparently intend.

>         # I have also tried 'lambda: self.Callback'
>         self.done = False

David Eppstein            
Univ. of California, Irvine, School of Information & Computer Science

More information about the Python-list mailing list