not implemented

2026年06月24日 15:35 33.98 秒 success

错误信息

not implemented

AI 解决方案

🔍 报错分析

1. 🌐 错误翻译


原文:NotImplementedError
译文:NotImplementedError: 未实现

2. 🎯 原因分析


  • 💥 根本原因:当调用一个方法时,如果该方法在父类中定义为“未实现”的抽象方法,而在子类中忘记提供具体实现,就会抛出此错误。

  • 📍 具体位置:错误发生在调用一个 abstract method(抽象方法)或需要子类重写(override)的方法时。
  • 3. 💡 解决方案


    在子类中实现缺失的方法。
    from abc import ABC, abstractmethod
    
    # 父类(抽象基类)
    class Shape(ABC):
        @abstractmethod
        def area(self):
            # 这个方法故意不实现,强制子类必须实现
            pass
    
    # 子类(错误示例)
    class Circle(Shape):
        def __init__(self, radius):
            self.radius = radius
        # 注意:这里没有实现 `area` 方法,调用时会报错
    
    # 子类(正确示例)
    class Square(Shape):
        def __init__(self, side):
            self.side = side
        
        def area(self):
            # 正确实现了父类的抽象方法
            return self.side ** 2
    
    # 测试
    # circle = Circle(5)
    # print(circle.area())  # 这里会触发 NotImplementedError
    
    square = Square(4)
    print(square.area())  # 输出:16,正常工作
    

    4. 🛡️ 预防措施


  • 🎯 设计阶段:在定义抽象基类(ABC)时,明确哪些方法是必须由子类实现的,并使用 @abstractmethod 装饰器。

  • 开发阶段:在编写子类时,确保实现了父类中所有的抽象方法。现代 IDE(如 PyCharm, VS Code)通常会在子类未实现抽象方法时给出提示或警告。

  • 🧪 测试阶段:为子类编写单元测试,确保所有继承的方法都能正确调用。