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')