首页 > 其他 > 详细

设计模式之克隆模式

时间:2020-05-27 23:24:27      阅读:51      评论:0      收藏:0      [点我收藏+]
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())

 

设计模式之克隆模式

原文:https://www.cnblogs.com/loveprogramme/p/12977353.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!