gpt4 book ai didi

python - `copy.deepcopy` 在 Python 中是否与 `NamedTuple` 一起使用?

转载 作者:行者123 更新时间:2023-11-28 21:35:48 26 4
gpt4 key购买 nike

我在文档中看到有一个 __deepcopy__ 方法可用于将 deepcopy 的行为扩展到内置类型之外。但是,NamedTuple(typing 模块中的类版本)的文档没有提及任何相关内容。但由于它为散列和相等性测试提供了默认值,我想知道,它是否也为深度复制提供了默认值?

最佳答案

NamedTuple 没有定义特殊的 __deepcopy__ 处理程序,但它不需要。 __deepcopy__ 只需要覆盖/自定义默认的深度复制行为(它只使用 pickle 特殊方法,__reduce_ex____reduce__);对于在 Python 中定义的类(与 C 扩展类型相反),默认行为通常是正确/完整的。 object 本身为所有非扩展类型提供有用的默认 pickling 行为,假设它们的所有属性本身都是可 picklable 的,例如没有打开的文件对象等。

因为 NamedTuple 是 Python 级别的,并且没有特殊的复制需求,所以它不需要实现自定义处理程序。仅当您的 NamedTuple 的某些属性是不可挑选的并且它们本身不定义 __deepcopy__ 时,您才需要自己这样做。

关于python - `copy.deepcopy` 在 Python 中是否与 `NamedTuple` 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51901253/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com