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

Python场景下不向子类传父类属性如何访问父类特定属性

错误原因
  • 父类School的__init__方法强制要求传入4个位置参数,子类Student调用super().__init__()时未传入任何参数,导致父类初始化失败,Schname等父类属性根本没有被创建。
  • 子类Student的构造方法没有预留接收父类参数的入口,无法将学校属性值传递给父类完成初始化。
修复方案

修改子类的构造方法,增加接收父类所需参数的入口,调用父类构造方法时传入对应参数即可:

class School():
   def __init__(self,Name,Room,Teacher,Student):
       self.Schname = Name
       self.Schroom = Room
       self.Schteacher = Teacher
       self.Schstudent = Student     
class Student(School):
  # 增加父类所需的四个参数
  def __init__(self, sch_name, sch_room, sch_teacher, sch_stu_count):
      self.name = []
      self.grade=[]
      self.ID=[]
      # 调用父类构造时传入参数
      super().__init__(sch_name, sch_room, sch_teacher, sch_stu_count)
  def StudentData(self,name,grade,ID):
      self.name.insert(0,name)
      self.grade.insert(0,grade)
      self.ID.insert(0,ID)
  def StudentInfo(self):
      for i in range(len(self.name)):
          print(f"{self.name[i]} is in {self.Schname}")
调用测试
# 实例化时先传入学校相关参数
stu_obj = Student("实验中学", "教学楼A区", "王主任", 1200)
# 录入学生数据
stu_obj.StudentData("张明", "高二5班", "20230512")
stu_obj.StudentData("刘畅", "高二7班", "20230709")
# 输出信息
stu_obj.StudentInfo()

运行后输出:

刘畅 is in 实验中学
张明 is in 实验中学

内容的提问来源于stack exchange,提问作者Ehsan d

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 16:48:03