class Foo(object):
quit_list = ['exit', 'quit', 'stop', 'finish', 'complete', 'leave']
def __getattr__(self, attr):
if attr.startswith('do_') and attr[3:] in self.quit_list:
return self.do_exit
else:
return super(Foo, self).__getattribute__(attr)
def do_exit(self):
print "Exit!"
f = Foo()
f.do_quit()
CmNsYXNzIEZvbyhvYmplY3QpOgogIHF1aXRfbGlzdCA9IFsnZXhpdCcsICdxdWl0JywgJ3N0b3AnLCAnZmluaXNoJywgJ2NvbXBsZXRlJywgJ2xlYXZlJ10KCiAgZGVmIF9fZ2V0YXR0cl9fKHNlbGYsIGF0dHIpOgogICAgaWYgYXR0ci5zdGFydHN3aXRoKCdkb18nKSBhbmQgYXR0clszOl0gaW4gc2VsZi5xdWl0X2xpc3Q6CiAgICAgIHJldHVybiBzZWxmLmRvX2V4aXQKICAgIGVsc2U6CiAgICAgICAgcmV0dXJuIHN1cGVyKEZvbywgc2VsZikuX19nZXRhdHRyaWJ1dGVfXyhhdHRyKQoKICBkZWYgZG9fZXhpdChzZWxmKToKICAgIHByaW50ICJFeGl0ISIKCgpmID0gRm9vKCkKZi5kb19xdWl0KCk=