How to create functors?

Leonhard Vogt leonhard.vogt at gmx.ch
Tue Aug 18 17:19:26 EDT 2009


> The example I gave earlier is a bit contrived, the real example
> fundamentally requires a lambda since I am actually passing in local
> variables into the functions the lambda is wrapping. Example:
> 
> def MyFunction():
>   localVariable = 20
>   CreateTask( lambda: SomeOtherFunction( localVariable ) ) # CreateTask
> () executes the functor internally
> 
> This is more or less like the real scenario I'm working with. There
> are other (more personal) reasons why I prefer to avoid 'def' in this
> case. I want to keep the functor as central to the code that needs it
> as possible to improve code readability.
> 

what about

def MyFunction():
     localVariable = 20
     def wrapper():
         return SomeOtherFunction( localVariable )
     CreateTask( wrapper )

the wrapper is only visible inside MyFunction.

Leonhard



More information about the Python-list mailing list