python - 为什么函数 __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”吗?
解决方案
推荐阅读
- python - 函数中样条和多条线之间的交点
- python - 递归字符串替换
- python - Django 应用程序无法识别 .env 文件,我尝试通过 os、Django-environ 和 dotenv 进行设置,但没有任何效果
- django - Django 表单中的 Queryset 对象不可迭代
- c# - 为什么 GetProcesses() 不显示所有正在运行的进程
- python-3.x - python3:无法打开文件 - 如何使用 Docker 访问目录
- r - 如何从 R 中的文本文件中读取?
- python - 如果满足条件,则使用另一列中的多个字符串之一更改一列
- android-fragments - 使用导航 UI 时使用 Espresso 正确测试片段
- foreach - MySQL 8 Recursive CTE 为每个项目创建行