def greeting(expr):
def greeting_decorator(func):
def function_wrapper(x):
print(expr + ", " + func.__name__ + " returns:")
func(x)
return function_wrapper
return greeting_decorator
@greeting("καλημερα")
def foo(x):
print(42)
foo("Hi")
Falls wir nicht die „@"-Syntax nutzen wollen, können ir es auch durch folgende Aufrufe bewerkstelligen:
decorator = greeting("καλημερα")
foo = decorator(foo)
foo("Hi")
καλημερα, foo returns:
42