zoukankan      html  css  js  c++  java
  • Python装饰器之functools.wraps的作用

    # -*- coding: utf-8 -*-
    # author:baoshan
    
    
    def wrapper(func):
        def inner_function():
            pass
        return inner_function
    
    
    @wrapper
    def wrapped():
        pass
    
    
    print(wrapped.__name__)
    # inner_function
    
    def wrapped2():
        pass
    
    
    print(wrapper(wrapped2).__name__)
    # inner_function
    
    
    # 为了避免上述情况的产生,方法是使用functools.wraps装饰器,
    # 它的作用就是被修饰的函数(wrapped)的一些属性值赋值给修饰器函数(wrapper),
    # 最终让属性的显示更符合我们的直觉。
    
    from functools import wraps
    
    def wrapper2(func):
    
        @wraps(func)
        def inner_function():
            pass
        return inner_function
    
    @wrapper2
    def wrapped3():
        pass
    
    print(wrapped3.__name__)
    # wrapped3

    Python装饰器之functools.wraps的作用,就是给被修饰的函数的一些属性值赋值给修饰器函数。

    谢谢!

  • 相关阅读:
    List接口的实现类
    Java 容器概述
    PayPal支付接口方式(checkout)集成
    Java Bio、Nio、Aio区别
    Java Aio
    Java Nio
    Java Bio
    Java Io流
    Java 23种设计模式
    SQL检测超时工具类
  • 原文地址:https://www.cnblogs.com/zhzhang/p/11375999.html
Copyright © 2011-2022 走看看