class Foo:
def __call__ ( self , event_name, *args, **kwargs) :
fn = getattr ( self , 'handle_{}' .format ( event_name) )
return fn( *args, **kwargs)
def handle_foo( self ) :
print ( 'foo' )
def handle_bar( self , x) :
print ( 'bar' , x)
dispatch = Foo( )
dispatch( 'foo' )
dispatch( 'bar' , 42 )
dispatch( 'whatever' )
Y2xhc3MgRm9vOgogICAgZGVmIF9fY2FsbF9fKHNlbGYsIGV2ZW50X25hbWUsICphcmdzLCAqKmt3YXJncyk6CiAgICAgICAgZm4gPSBnZXRhdHRyKHNlbGYsICdoYW5kbGVfe30nLmZvcm1hdChldmVudF9uYW1lKSkKICAgICAgICByZXR1cm4gZm4oKmFyZ3MsICoqa3dhcmdzKQogICAgICAgIAogICAgZGVmIGhhbmRsZV9mb28oc2VsZik6CiAgICAgICAgcHJpbnQoJ2ZvbycpCiAgICAgICAgCiAgICBkZWYgaGFuZGxlX2JhcihzZWxmLCB4KToKICAgICAgICBwcmludCgnYmFyJywgeCkKICAgICAgICAKZGlzcGF0Y2ggPSBGb28oKQpkaXNwYXRjaCgnZm9vJykKZGlzcGF0Y2goJ2JhcicsIDQyKQpkaXNwYXRjaCgnd2hhdGV2ZXInKQ==