from copy import copy, deepcopy
# 理解深浅拷贝
# 浅拷贝:只拷贝引用类型对象的指针,不拷贝引用类型对象指向的值(只拷贝第一层)
# 深拷贝:同时拷贝引用类型对象及其指向的值
# 引用类型:Python中表现为:list、dict、、set、类对象
a = [1, 2, 3, 3, 4]
b = a
a[1] = 1000 # [1, 1000, 3, 3, 4]
b # [1, 1000, 3, 3, 4]
s = set([1, 2, 3, 4])
s1 = s
s.add(20)
print(s1)
class Clone:
"""克隆的基类:
只要继承该类,就可以进行深浅拷贝
优点:克隆模式通过内存的拷贝的方式进行复制,比new的方式创建对象性能更好;通过深拷贝的方式,可以方便地创建一个具有相同属性
和行为的另一个对象,特别是对于复杂对象,方便性尤为突出
"""
def __init__(self):
super().__init__()
def clone(self):
return copy(self)
def deepClone(self):
return deepcopy(self)
class People(Clone):
def __init__(self, name):
self._name = name
def getName(self):
return self._name
def setName(self, name):
self._name = name
will = People("Will")
will2 = will.clone()
will2.setName("Tom")
print(will.getName())