美文网首页
原型模式

原型模式

作者: sunshining小迪儿 | 来源:发表于2018-12-27 20:50 被阅读0次
    class Prototype:
        def __init__(self):
            self.objects = {}
    
        def register(self, name, obj):
            self.objects[name]=obj
    
        def unregister(self, name):
            del self.objects[name]
    
        def clone(self, name, **kwargs):
            import copy
            obj = copy.deepcopy(self.objects.get(name))
            obj.__dict__.update(kwargs)
            return obj
    
    
    class A:
        def __str__(self):
            return 'i am A'
    
    
    def main():
        a = A()
        setattr(a,'e',10)
        prototype = Prototype()
        prototype.register('a', a)
        b = prototype.clone('a', e=1, f=2, g=3)
        print(a)
        print(a.e)
        print(b.e)
        print(b.f)
        print(b.g)
    if __name__ == '__main__':
        main()
    

    相关文章

      网友评论

          本文标题:原型模式

          本文链接:https://www.haomeiwen.com/subject/bvfzkqtx.html