class Foo:
def hello(self):
print "Hello cruel world!"
def greet_first(self, f):
self.hello()
return lambda *args, **kwargs: f(*args, **kwargs)
@greet_first
def goodbye(self, concat):
print "Goodbye {0}".format(concat)
if __name__=='__main__':
bar = Foo()
bar.goodbye(' and thanks for all the fish')
Y2xhc3MgRm9vOgogICAgZGVmIGhlbGxvKHNlbGYpOgogICAgICAgIHByaW50ICJIZWxsbyBjcnVlbCB3b3JsZCEiCgogICAgZGVmIGdyZWV0X2ZpcnN0KHNlbGYsIGYpOgogICAgICAgIHNlbGYuaGVsbG8oKQogICAgICAgIHJldHVybiBsYW1iZGEgKmFyZ3MsICoqa3dhcmdzOiBmKCphcmdzLCAqKmt3YXJncykKCiAgICBAZ3JlZXRfZmlyc3QKICAgIGRlZiBnb29kYnllKHNlbGYsIGNvbmNhdCk6CiAgICAgICAgcHJpbnQgIkdvb2RieWUgezB9Ii5mb3JtYXQoY29uY2F0KQoKaWYgX19uYW1lX189PSdfX21haW5fXyc6CiAgICBiYXIgPSBGb28oKQogICAgYmFyLmdvb2RieWUoJyBhbmQgdGhhbmtzIGZvciBhbGwgdGhlIGZpc2gnKQ==