首页 > 解决方案 > 为什么函数 __name__ 返回包装函数名称而不是代码所在的函数名称?

问题描述

def logging_decorator(function):
    def wrapper(*args, **kwargs):
        print(f'This is {function.__name__}')
        output = function(*args, **kwargs)
    return wrapper


@logging_decorator
def a_function(a, b, c):
    print(f'This is the Function name {a_function.__name__}')
    return a * b * c

object = a_function(3, 4, 5)

一直在玩 python 装饰器,但我不明白以下内容:

为什么

print(f'This is the Function name {a_function.__name__}')

输出“这是函数名称包装器”?输出不应该是“这是函数名称a_function”吗?

标签: pythonfunctionpython-decoratorsargs

解决方案


推荐阅读