zoukankan      html  css  js  c++  java
  • 设计模式之克隆模式

    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())
  • 相关阅读:
    《人月神话》阅读笔记02
    《人月神话》阅读笔记01
    第十四周学习进度条
    我们做的作品 请大家多多支持我们
    Beta阶段项目总结
    Alpha阶段项目总结
    Alpha版总结会议
    站立会议10(第二次冲刺)
    站立会议09(第二次冲刺)
    站立会议08(第二次冲刺)
  • 原文地址:https://www.cnblogs.com/loveprogramme/p/12977353.html
Copyright © 2011-2022 走看看