使得 Course 类可复制)重写程序清单 10-6(参见教材Ps10)中的 Course 类,增加一个clone 方法,执行 students 域上的深度复制。
时间: 2023-06-15 20:05:22 浏览: 215
JavaScript深度复制(deep clone)的实现方法
下面是重写后的 Course 类代码:
```python
class Course:
def __init__(self, course_name, students=[]):
self.course_name = course_name
self.students = students
def add_student(self, student):
self.students.append(student)
def clone(self):
import copy
return Course(self.course_name, copy.deepcopy(self.students))
```
在这个版本中,我们使用了 Python 内置的 `copy` 模块的 `deepcopy` 方法,来复制 students 域。这样,我们就可以获得一个全新的 Course 对象,其中的 students 域与原来的对象完全独立,对其进行操作不会影响到原来的对象。
阅读全文