原型模式(Prototype Pattern):使用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式是一种对象创建型模式。
# -*- coding:utf-8 -*- import copy class Person: ‘‘‘定义原型类,用于被复制‘‘‘ def __init__(self): self.name = None self.sex = None self.age = None def run(self): print(‘name:%s, sex:%s, age:%s‘ %(self.name, self.sex, self.age)) class Prototype: ‘‘‘定义复制类,用于复制原型类,并更新类中的属性‘‘‘ def __init__(self, obj): ‘‘‘接收需要复制的类名,并实例化成对象‘‘‘ self.obj = obj() def clone(self, **kwargs): ‘‘‘深拷贝原型类,并更新参数‘‘‘ copy_obj = copy.deepcopy(self.obj) copy_obj.__dict__.update(kwargs) return copy_obj test = Prototype(Person) p1 = test.clone(name=‘Mike‘, sex=‘Male‘, age=20) p2 = test.clone(name=‘Lucy‘, sec=‘Female‘, age=18) p1.run() p2.run()
结果:
name:Mike, sex:Male, age:20
name:Lucy, sex:None, age:18
原文:https://www.cnblogs.com/dxnui119/p/11944551.html