First page Back Continue Last page Overview Image

Dekorateure mit Parametern, II

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