Skip to content

装饰器

定义装饰器函数

# 定义装饰器函数
def my_decorator(input_func):
    def output_func(*args, **kwargs):
        print("aaaa")
        input_func(*args, **kwargs)
        print("bbbb")

    return output_func


# 定义一个函数并应用装饰器
@my_decorator
def say_hello(name: str = ''):
    print("Hello!" + name)


# 调用被装饰的函数
say_hello('xxx')

装饰器带参数

# 定义装饰器函数
def my_decorator_with_args(arg1):
    def my_decorator(input_func):
        def output_func(*args, **kwargs):
            print(arg1)
            print("aaaa")
            input_func(*args, **kwargs)
            print("bbbb")

        return output_func

    return my_decorator


# 定义一个函数并应用装饰器
@my_decorator_with_args(arg1='one')
def say_hello(name: str = '小明'):
    print("Hello!" + name)


# 调用被装饰的函数
say_hello('xxx')