nested decorator with param and arguments

import functools

def wrap(name: str):
    def wrapper(f):
        print("within the first wrapper")
        print(f, name)

        @functools.wraps(f)
        def wrapper2(place: str):
            print("this is the place", place)

            result = f(place)
            print(result)

        return wrapper2

    return wrapper

@wrap("tester")
def handle(place):
    print("@", place)
    return "@"+place



result = handle("Singapore")
print(result)

Leave a comment