实操作业:面向对象进阶

1. 如下代码测试对象的浅拷贝、深拷贝,请绘制出内存示意图。#测试对象的引用赋值、浅拷贝、深拷贝import copyclass MobilePhone: def __init__(self,cpu,screen): self.cpu = cpu self.screen = screenclass CPU: def calculate(self): print("计算,算个12345") print("CPU 对象
摘要由CSDN通过智能技术生成

1. 如下代码测试对象的浅拷贝、深拷贝,请绘制出内存示意图。

#测试对象的引用赋值、浅拷贝、深拷贝
import copy
class MobilePhone:
    def __init__(self,cpu,screen):
        self.cpu = cpu
        self.screen = screen
class CPU:
    def calculate(self):
        print("计算,算个12345")
        print("CPU 对象:",self)
class Screen:
    def show(self):
        print("显示一个好看的画面,亮瞎你的钛合金大眼")
        print("屏幕对象:",self)
****以下这段代码有问题*******
c = CPU()
s = Screen()
m = MobilePhone(c,s)
m.cpu.calculate()
n = m #两个变量,但是指向了同一个对象
print(m,n)
m2 = copy.copy(m) #m2 是新拷贝的另一个手机对象
print(m,m2)
m.cpu.calculate()
m2.cpu.calculate() #m2 和m 拥有了一样的cpu 对象和screen 对象
m3 = copy.deepcopy(m)
m3.cpu.calculate() #m3 和m 拥有不一样的cpu 对象和screen对象
********以下这段代码是我根据教学视频修改的******
print("变量赋值")
c1=CPU()
c2=c1
print(c1)
print(c2)

print("浅复制")
s1=Screen()
m1=MobilePhone(c1,s1)
m2=copy.copy(m1)
print(m1,m1.cpu,m
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值