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

Python报错TypeError:无法实例化含抽象方法的抽象类Person,原因何在?

为什么Python会抛出TypeError: Can't instantiate abstract class Person with abstract method introduce_yourself?

问题原因

  • 你定义的Person类继承自ABC(抽象基类),并且包含了被@abstractmethod装饰的introduce_yourself方法。
  • 抽象类的本质是作为模板类存在,它要求所有子类必须实现其标记为抽象的方法,而抽象类本身不允许被直接实例化。
  • 你直接执行adam = Person('Adam')尝试创建抽象类的实例,这违反了抽象类的设计规则,因此Python抛出该错误。

修复方案

创建Person的子类,在子类中实现introduce_yourself抽象方法,之后实例化子类即可:

from abc import ABC, abstractmethod

class Person(ABC):
    def __init__(self, name) -> None:
        self.name = name

    @abstractmethod
    def introduce_yourself(self):
        pass

# 定义子类并实现抽象方法
class Student(Person):
    def introduce_yourself(self):
        print(f"Hi, I'm {self.name}")

# 实例化子类
adam = Student('Adam')
adam.introduce_yourself()  # 输出: Hi, I'm Adam

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 09:02:04