克隆模式也叫原型模式,通过拷贝自身的属性来创建一个新的对象。原型模式的一个基本方法就是clone,在C++中属于深拷贝。
from copy import copy,deepcopy
class Person:
def __init__(self,name,age):
self.__name = name
self.__age = age
def showInfo(self):
print("我是"+self.__name+",今年年龄是"+str(self.__age)+"岁")
def clone(self):
return copy(self)
def test():
tom = Person("Tom",27)
tom.showInfo();
jeery=tom.clone();
jeery.showInfo();
test()
运行结果:
我是Tom,今年年龄是27岁
我是Tom,今年年龄是27岁
python中的浅拷贝只拷贝引用类型对象的指针,而不会拷贝引用类型对象指向的值;深拷贝则同时拷贝应用对象的及其执行的值。
列表(List)、字典(Dictionary)、类队形,默认的是浅拷贝。
通过克隆的方式创建对象,不会执行类的初始化韩式(__init __)
aaa