为什么 `functools.partial` 默认不继承 `__name__` 等元数据?

Ben*_*sAI 7 python functools

我想知道为什么默认情况下不继承包装方法/函数的元数据(例如__name__, )。相反,提供该功能。__doc__partialfunctoolsupdate_wrapper

为什么默认情况下不这样做并没有在任何地方提到(据我所知),例如这里和许多functools.partial关于如何“解决问题”的教程__name__

是否有继承此信息会导致问题/混乱的示例?

use*_*ica 16

想想那实际上会是什么样子:

def add(x, y):
    "Adds two numbers"
    return x + y

add_5 = partial(add, 5)
Run Code Online (Sandbox Code Playgroud)

add_5has __name__set to"add"__doc__set to真的有意义吗"Adds two numbers"

由 创建的可调用函数的partial行为与原始函数完全不同。新的可调用函数继承具有完全不同行为的函数的名称和文档字符串是不合适的。