Python __str__方法改造:将逐行打印逻辑调整为返回字符串实现
学生类
__str__方法改造实现 改造后的完整代码如下,全程保留原有业务逻辑,移除所有逐行print调用,将所有待展示信息拼接为完整字符串返回,贴合Python __str__方法的设计要求:
def __str__(self): """Returns the string representation of the student.""" avg = sum(self.scores) / len(self.scores) # 对齐原逐行打印的全部内容 content_lines = [ "Name: " + str(self.name), "Score 1: " + str(self.scores[0]), "Score 2: " + str(self.scores[1]), "Score 3: " + str(self.scores[2]), "High: " + str(int(max(self.scores))), "Average: %.2f\n" % avg ] # 用换行符拼接所有行,作为方法返回值 return '\n'.join(content_lines)
合规性校验
- 业务逻辑完全对齐原实现:保留平均分计算规则、三门课程成绩逐行展示、最高成绩强制取整、平均分固定保留两位小数的格式要求
- 展示效果一致:直接对学生实例调用
print()时,核心展示内容和原逐行print版本无差异 - 符合魔术方法设计规范:
__str__方法本身不触发控制台打印操作,无额外副作用,返回的字符串可直接用于日志输出、数据序列化等各类需要学生信息文本的场景
内容的提问来源于stack exchange,提问作者aesthetics
相关产品推荐
相关产品推荐

