Python becoming less Lisp-like

Kent Johnson kent37 at tds.net
Tue Mar 15 19:54:56 EST 2005


Steven Bethard wrote:
> Bruno Desthuilliers wrote:
> 
>>> class CommandMenuSelectionCallback:
>>>     def __init__(self, key):
>>>         self.key = key
>>>
>>>     def __call__(self):
>>>         print self.key
>>
>> Looks like Java.
> 
> 
> When was the last time you used Java?  It has no support for using 
> classes as callable objects.  __call__ would have to be invoked 
> manually; you definitely couldn't have a CommandMenuSelectionCallback 
> instance masquerading as a function as this code (basically) does.

It's like Java in that it uses a short helper class to define an event callback. In the case of Java 
it would be an anonymous inner class programming to an interface. It's like Java in that it uses 
five lines of code to do what Python can do in one.

Do you really prefer this verbosity to a lambda expression? Yikes!

Kent



More information about the Python-list mailing list