Skip to Content
Python 技術手冊 第三版
book

Python 技術手冊 第三版

by lex Martelli, Anna Martelli Ravenscroft, Steve Holden
January 2018
Intermediate to advanced content levelIntermediate to advanced
856 pages
17h 17m
Chinese
GoTop Information, Inc.
Content preview from Python 技術手冊 第三版
collections 模組
|
249
deepcopy deepcopy(x,[memo])
製作
x
的一份深層拷貝並回傳它。深層複製意味著在參考構成的一個
有向(不一定是無循環的)圖(directed graph)中遞迴遊走(https://
en.wikipedia.org/wiki/Glossary_of_graph_theory#Walks)。為了產生形狀完全
相同的圖,有一點需要特別注意:在遊走過程中,如果碰到了對相同物件
的參考超過一次,那就不能製作出各別的拷貝。取而代之,必須使用對相
同物件的那些參考。請考慮下列簡單的例子:
sublist = [1,2]
original = [sublist, sublist]
thecopy = copy.deepcopy(original)
original[0] is original[1]
True
(也就是說,
original
的兩個項目指
涉相同的物件)。這是
original
重要的一個特性,而任何宣稱是它的「拷
貝」的東西,都必須保留這種特性。
copy.deepcopy
的語意確保
thecopy[0]
is thecopy[1]
也是
True
original
thecopy
的參考圖(graphs of
references)因此會有相同的形狀。避免重複的拷貝有一個重要的有益的
副作用:它防止了參考圖有循環(cycles)時會發生的無限迴圈。
copy.deepcopy
接受第二個選擇性的引數
memo
,它是一個
dict
,會將已
經被複製的物件之
id ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

測試驅動開發|使用 Python

測試驅動開發|使用 Python

Harry J.W. Percival
Linux 内核观测技术BPF

Linux 内核观测技术BPF

David Calavera, Lorenzo Fontana

Publisher Resources

ISBN: 9789864766819