這是一個非常簡單的問題,但我似乎無法弄清楚如何去做。我只需要復制一個類物件,例如:
class Foo():
def __init__(self, nums):
self.nums = nums
A = Foo(5)
我嘗試同時執行 A.copy() 和 A.deepcopy(),但我得到“'Foo' object has no attribute 'copy'”這可能是一個超級簡單的修復,但是我之前從未使用過 copy 模塊并且我不知道為什么這可能是一個問題。作為參考,我需要復制的物件是可變的(不影響原始物件),所以我認為最好的方法是使用 .deepcopy()。
uj5u.com熱心網友回復:
沒錯,使用內置復制模塊中的 deepcopy 是可行的方法,因為您想要 Object Foo 的精確副本。
from copy import deepcopy
class Foo:
...
Foo_copy = deepcopy(Foo)
# Foo_copy(5) will work exactly the same way Foo(5) would work without affecting it.
# Foo_copy = deepcopy(Foo(5)) works the same way as well, but here, Foo_copy.nums will be 5.
在這里,傳遞物件Foo(5)將回傳 a Foo object,不帶任何引數傳遞將回傳__name__.Foo
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/473971.html
