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

《Python简明教程》继承章节报错:‘SchoolMember’未定义求助

排查Python继承中SchoolMember未定义错误的常见原因

Hey there! Let's break down why you're hitting that "SchoolMember is not defined" error even after copying the code from the tutorial. Here are the most likely culprits:

  • 代码顺序搞反了:Python是从上到下逐行执行的,要是你先写了继承SchoolMember的子类(比如Teacher或者Student),但SchoolMember这个父类的定义放在了子类后面,程序运行到子类的时候根本不知道父类是什么,自然会报错。一定要保证父类SchoolMember的代码块出现在所有子类定义的前面。

    正确的顺序示例:

    # 先定义父类
    class SchoolMember:
        def __init__(self, name, age):
            self.name = name
            self.age = age
            print('(Initialized SchoolMember: {})'.format(self.name))
    
        def tell(self):
            print('Name:"{}" Age:"{}"'.format(self.name, self.age), end=" ")
    
    # 再定义子类
    class Teacher(SchoolMember):
        def __init__(self, name, age, salary):
            SchoolMember.__init__(self, name, age)
            self.salary = salary
            print('(Initialized Teacher: {})'.format(self.name))
    
        def tell(self):
            SchoolMember.tell(self)
            print('Salary: "{:d}"'.format(self.salary))
    
  • 拼写出现失误:Python是大小写敏感的语言,检查下你写的类名是不是和教程完全一致——比如是不是把SchoolMember写成了schoolmember(全小写)、SchoolMemmber(多打了一个m)这类错误,一点点拼写差异都会导致程序识别不到这个类。

  • 缩进不符合规范:如果SchoolMember类的缩进有问题(比如和其他代码块混在一起,没有保持统一的缩进层级),Python可能不会把它识别成一个有效的类定义。要确保class SchoolMember:顶格写,类内部的方法统一缩进4个空格(或者保持一致的缩进规则)。

  • 多文件场景漏导入:如果教程里的代码是拆分在多个文件里的,而你只复制了子类的代码,没把SchoolMember所在的文件导入进来,也会触发这个错误。这种情况需要在子类文件开头加上from 父类文件名 import SchoolMember来导入父类。

你可以对照这几点逐一检查你的代码,大概率能快速定位问题!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 09:05:43