python 매직 메소드 - 파이썬에서 객체의 복사본을 만들려면 어떻게해야합니까?


1 Answers

copy.copy() 얕은 사본 copy.copy()

#!/usr/bin/env python3

import copy

class C():
    def __init__(self):
        self.x = [1]
        self.y = [2]

# It copies.
c = C()
d = copy.copy(c)
d.x = [3]
assert c.x == [1]
assert d.x == [3]

# It's shallow.
c = C()
d = copy.copy(c)
d.x[0] = 3
assert c.x == [3]
assert d.x == [3]

copy.deepcopy()copy.deepcopy() 딥 카피

#!/usr/bin/env python3
import copy
class C():
    def __init__(self):
        self.x = [1]
        self.y = [2]
c = C()
d = copy.deepcopy(c)
d.x[0] = 3
assert c.x == [1]
assert d.x == [3]

문서 : https://docs.python.org/3/library/copy.html

Python 3.6.5에서 테스트되었습니다.

python oop object copy

개체의 복사본을 만들고 싶습니다. 새 객체가 이전 객체의 모든 속성 (필드 값)을 소유하기를 원합니다. 그러나 나는 독립적 인 물건을 갖고 싶다. 따라서 새 객체의 필드 값을 변경하면 이전 객체가 영향을받지 않습니다.



Related