为什么' functools.部分'不继承' __name__ '和其他元数据默认?



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

为什么它不是默认情况下没有提到任何地方(据我所见),例如这里和许多教程在functools.partial谈论如何"解决问题"。缺少__name__.

是否有继承这些信息导致问题/混乱的例子?

考虑一下实际情况:

def add(x, y):
"Adds two numbers"
return x + y
add_5 = partial(add, 5)

如果add_5__name__设置为"add",__doc__设置为"Adds two numbers",这真的有意义吗?

partial创建的可调用对象的行为与原始函数完全不同。如果新的可调用对象继承了一个行为完全不同的函数的名称和文档字符串,这是不合适的。

相关内容

  • 没有找到相关文章

最新更新