You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

学习Python类与对象时遇第13行语法错误,求技术协助

代码问题修复及说明

首先解决你提到的第13行语法错误:else块里的print语句缺少一个右括号,补充后即可解决语法报错。

除此之外,代码还有几处逻辑和规范问题,一并修复:

  • 类名规范:Python类名建议采用大驼峰命名法,将teacher改为Teacher,student改为Student。
  • 实例方法调用错误:assigned_student是Teacher类的实例方法,需通过实例对象调用,而非直接以函数形式调用。
  • if条件逻辑错误:student.year == self是把学生年级和教师实例做比较,逻辑完全错误,这里调整为判断学生科目是否和教师科目匹配(可根据你的实际需求修改条件)。

修复后的完整代码:

class Teacher:
    def __init__(self, name, year, subject):
        self.name = name
        self.year = year
        self.subject = subject

    def assigned_student(self, student):
        # 修正条件:年份相等且科目匹配
        if student.year == self.year and student.subject == self.subject:
            print("Hello, {name}! You will be in my class of {subject}".format(name=student.name, subject=self.subject))
        else:
            # 补充缺失的右括号
            print("Sorry {name}. I will not be your teacher this year".format(name=student.name))

class Student:
    def __init__(self, name, year, subject):
        self.name = name
        self.year = year
        self.subject = subject

teacher_one = Teacher("Rodolfo", 6, "Math")
student_one = Student("Chino", 6, "Math")

# 正确调用实例方法
teacher_one.assigned_student(student_one)

关键错误点解释

  • 第13行语法错误:print函数的括号未闭合,Python解释器无法识别语句结束,补充)即可解决。
  • 实例方法调用错误:assigned_student方法依赖Teacher实例的属性(self.year、self.subject),必须通过实例.方法()的形式调用。
  • 条件逻辑错误:student.year == self将整数(年级)和Teacher对象比较,结果永远为False,调整为合理的业务判断后,才能正确执行分支逻辑。

内容的提问来源于stack exchange,提问作者Rodolfo Peralta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 20:27:25