• 怎么给装饰器函数加装饰器????


    def decorator_with_args(decorator_to_enhance):
        """
        这个函数将被用来作为装饰器.
        它必须去装饰要成为装饰器的函数.
        它将允许所有的装饰器可以接收任意数量的参数,所以以后你不必为每次都要做这个头疼了.
        saving you the headache to remember how to do that every time.
        """
    
        # 我们用传递参数的同样技巧.
        def decorator_maker(*args, **kwargs):
            # 我们动态的建立一个只接收一个函数的装饰器,
            # 但是他能接收来自maker的参数
            def decorator_wrapper(func):
                # 最后我们返回原始的装饰器,毕竟它只是'平常'的函数
                # 唯一的陷阱:装饰器必须有这个特殊的,否则将不会奏效.
                print("log")
                return decorator_to_enhance(func, *args, **kwargs)
    
            return decorator_wrapper
    
        return decorator_maker
    
    
    @decorator_with_args
    def decorated_decorator(func, *args, **kwargs):  #decorated_decorator= decorator_maker
        def wrapper(function_arg1, function_arg2):
            print("Decorated with")
            return func(function_arg1, function_arg2)
    
        return wrapper
    
    
    @decorated_decorator()
    def decorated_function(function_arg1, function_arg2):
        print("Hello", function_arg1, function_arg2)
    
    
    decorated_function("Universe and", "everything")
    View Code
  • 相关阅读:
    2014华为上机题(转)
    c语言scanf详解
    Linux环境下Android JNI程序的编译
    C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
    容器化交付流程设计
    阿里云云计算相关术语概念
    k8s的部署策略
    pod控制器介绍
    Statefulset详细解析
    k8s持久化状态存储原理
  • 原文地址:https://www.cnblogs.com/ltk-python/p/9378404.html
Copyright © 2020-2023  润新知