实现一个深拷贝
时间: 2023-07-19 18:05:39 浏览: 40
深拷贝是指在复制一个对象时,会将该对象的所有属性都复制一份,形成一个新的对象,新对象与原对象没有任何关系。以下是一个实现深拷贝的示例代码:
```python
import copy
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
class Car:
def __init__(self, brand, owner):
self.brand = brand
self.owner = owner
person = Person("Bob", 30)
car = Car("BMW", person)
# 使用copy模块的deepcopy函数进行深拷贝
new_car = copy.deepcopy(car)
# 修改原对象的属性
person.name = "Alice"
# 输出两个对象的属性,可以看到它们互不影响
print(f"car: brand={car.brand}, owner={car.owner.name}")
print(f"new_car: brand={new_car.brand}, owner={new_car.owner.name}")
```
输出结果为:
```
car: brand=BMW, owner=Alice
new_car: brand=BMW, owner=Bob
```
可以看到,虽然我们修改了原对象person的name属性,但是新对象new_car的owner属性的name值并没有改变,说明它们已经是两个独立的对象了。