现在需要5个学生对象,其年级、专业、学院、学校、校区等公共信息都相同,区别在于性别、姓名和年龄,为了简化创建过程,可以通过原型模式来实现相似对象的复制,再对不同对象属性进行修改。
时间: 2023-05-14 13:05:03 浏览: 45
答:可以使用原型模式来实现相似对象的复制,再对不同对象属性进行修改。具体实现方式可以参考以下代码:
class Student:
def __init__(self, name, age, gender, grade, major, college, school, campus):
self.name = name
self.age = age
self.gender = gender
self.grade = grade
self.major = major
self.college = college
self.school = school
self.campus = campus
def clone(self):
return Student(self.name, self.age, self.gender, self.grade, self.major, self.college, self.school, self.campus)
# 创建原型对象
prototype = Student('', 0, '', '大一', '计算机科学与技术', '计算机学院', '清华大学', '海淀校区')
# 创建5个学生对象
students = []
for i in range(5):
student = prototype.clone()
student.name = '学生{}'.format(i+1)
student.age = 18 + i
student.gender = '男' if i % 2 == 0 else '女'
students.append(student)
# 打印学生信息
for student in students:
print('姓名:{},年龄:{},性别:{},年级:{},专业:{},学院:{},学校:{},校区:{}'.format(student.name, student.age, student.gender, student.grade, student.major, student.college, student.school, student.campus))