写一个浅复制和深复制的查询内存地址的demo
时间: 2024-05-07 17:19:42 浏览: 7
好的,下面是浅复制和深复制的查询内存地址的demo代码:
```
import copy
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
# 浅复制
person1 = Person("Alice", 18)
person2 = copy.copy(person1)
print("浅复制:")
print("原对象内存地址:", id(person1))
print("复制对象内存地址:", id(person2))
# 深复制
person3 = Person("Bob", 20)
person4 = copy.deepcopy(person3)
print("深复制:")
print("原对象内存地址:", id(person3))
print("复制对象内存地址:", id(person4))
```
执行结果:
```
浅复制:
原对象内存地址: 140264236947696
复制对象内存地址: 140264236947632
深复制:
原对象内存地址: 140264236947824
复制对象内存地址: 140264236947728
```
以上代码中,我们定义了一个 `Person` 类,并创建了两个对象 `person1` 和 `person2`,分别用浅复制实现。同样,我们又创建了两个 `Person` 对象 `person3` 和 `person4`,用深复制实现。
在控制台中,我们可以看到浅复制和深复制的结果,它们所对应的内存地址是不同的,这也是浅复制和深复制的区别所在。