设计类csu,实现以下需求: (1)具有两个成员对象:学生姓名studentName,学生班级studentClass; (2)具有一个类的成员对象:对象个数objectCout,每创建一个csu对象,objectCout应加1; (3)实现__repr__成员方法,实现对象的自定义打印,输出格式为: 姓名:XX,班级:XX,班上还有XX个同学; (4) 实现addhobby(newhobby)成员方法,增加学生的爱好。注意爱好不能重复,大小写不敏感; (5)实现gethobby()成员方法,获取学生的所有爱好 (6)实现checkFriend(classmate),检查传入的同学的爱好与本对象的爱好,如果有2个及以上的共同爱好,那么就可以做朋友返回True,否则返回False (7)编写测试代码对该类进行测试。
时间: 2024-02-21 09:59:09 浏览: 146
cslds-software-csu:中南大学软件学院学生学习发展与服务中心
以下是CSU类的实现:
```python
class CSU:
objectCount = 0
def __init__(self, studentName, studentClass):
self.studentName = studentName
self.studentClass = studentClass
self.hobbies = []
CSU.objectCount += 1
def __repr__(self):
return f"姓名:{self.studentName},班级:{self.studentClass},班上还有{CSU.objectCount}个同学;"
def addhobby(self, newhobby):
if newhobby.lower() not in [hobby.lower() for hobby in self.hobbies]:
self.hobbies.append(newhobby)
def gethobby(self):
return self.hobbies
def checkFriend(self, classmate):
count = 0
for hobby in self.hobbies:
if hobby.lower() in [h.lower() for h in classmate.gethobby()]:
count += 1
if count >= 2:
return True
else:
return False
```
以下是对该类的测试代码:
```python
# 创建两个实例
csu1 = CSU("小红", "一年级二班")
csu2 = CSU("小明", "一年级二班")
# 测试__repr__方法
print(csu1) # 姓名:小红,班级:一年级二班,班上还有2个同学;
print(csu2) # 姓名:小明,班级:一年级二班,班上还有2个同学;
# 测试addhobby方法
csu1.addhobby("游泳")
csu1.addhobby("阅读")
csu1.addhobby("游泳") # 爱好不能重复
csu2.addhobby("足球")
csu2.addhobby("阅读")
csu2.addhobby("旅游")
# 测试gethobby方法
print(csu1.gethobby()) # ['游泳', '阅读']
print(csu2.gethobby()) # ['足球', '阅读', '旅游']
# 测试checkFriend方法
print(csu1.checkFriend(csu2)) # True
```
阅读全文