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
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to