[英]Does `copy.deepcopy` work with `NamedTuple`s in Python?
我的文檔中看到,有一個__deepcopy__
可用於擴展的行為方法deepcopy
超越內置類型。 但是, NamedTuple
( typing
模塊中的類版本)的文檔未提及任何內容。 但是,由於它為哈希和相等性測試提供了默認值,所以我想知道,它是否也為深度復制提供了默認值?
NamedTuple
不需要定義特殊的__deepcopy__
處理程序,但不需要。 __deepcopy__
僅用於覆蓋/自定義默認的深層復制行為(僅使用pickle
特殊方法__reduce_ex__
或__reduce__
); 對於用Python定義的類(與C擴展類型相對),默認行為通常是正確/完整。 object
本身為所有非擴展類型提供了有用的默認酸洗行為,假設它們的所有屬性本身都是可酸洗的,例如沒有打開的文件對象等。
由於NamedTuple
是Python級別的,並且沒有特殊的復制需求,因此不必費心實現自定義處理程序。 僅當NamedTuple
某些屬性NamedTuple
拾取並且自己沒有定義__deepcopy__
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.