Violet2forever 2021-04-21 07:53 采纳率: 100%
浏览 73
已采纳

python3中为什么我的info没有从父类中继承到子类?

报错如下

Traceback (most recent call last):
  File "E:/pythonProject3/8/8.1.py", line 23, in <module>
    stu = Student('张三', 20, '10001')
  File "E:/pythonProject3/8/8.1.py", line 14, in __init__
    super().__init__(name, age)
TypeError: object.__init__() takes exactly one argument (the instance to initialize)

代码如下

class Person(object):
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def info(self):
        print(self.name, self.age)


class Student:
    def __init__(self, name, age, stu_no):
        super().__init__(name, age)
        self.stu_no = stu_no

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


stu = Student('张三', 20, '10001')
teacher = Teacher('李四', 34, 10)
stu.info()

在输入stu.info的时候显示没有这个类,不知道是因为什么原因导致没有继承到子类

  • 写回答

4条回答 默认 最新

  • kaili_ya 2021-04-21 09:09
    关注

    继承是class 子类(父类):

    class Person(object):
        def __init__(self, name, age):
            self.name = name
            self.age = age
     
        def info(self):
            print(self.name, self.age)
     
     
    class Student(Person):
        def __init__(self, name, age, stu_no):
            super().__init__(name, age)
            self.stu_no = stu_no
    
    class Teacher(Person):
        def __init__(self, name, age, year):
            super().__init__(name, age)
            self.year = year
     
     
    stu = Student('张三', 20, '10001')
    teacher = Teacher('李四', 34, 10)
    stu.info()
    print(stu.stu_no)
    teacher.info()
    print(teacher.year)

    也可以写成:

    class Person(object):
        def __init__(self, name, age):
            self.name = name
            self.age = age
     
        def info(self):
            print(self.name, self.age)
     
     
    class Student(Person):
        def __init__(self, name, age, stu_no):
            super(Student, self).__init__(name, age)
            self.stu_no = stu_no
    
    class Teacher(Person):
        def __init__(self, name, age, year):
            super(Teacher, self).__init__(name, age)
            self.year = year
     
     
    stu = Student('张三', 20, '10001')
    teacher = Teacher('李四', 34, 10)
    stu.info()
    print(stu.stu_no)
    teacher.info()
    print(teacher.year)
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵