小编Ale*_*ier的帖子

禁止向 Python 子类添加新方法

我有两个类应该为两个独立的库实现相同的测试用例(我们称它们为LibALibB)。到目前为止,我定义了要在抽象基类中实现的测试方法,以确保两个测试类都实现所有所需的测试:

from abc import ABC, abstractmethod

class MyTests(ABC):
    @abstractmethod
    def test_foo(self):
        pass

class TestsA(MyTests):
    def test_foo(self):
        pass

class TestsB(MyTests):
    def test_foo(self):
        pass
Run Code Online (Sandbox Code Playgroud)

这按预期工作,但仍然可能发生的是,在LibB 上工作的不小心添加了一个test_bar()方法TestB而不是基类。在这种情况下test_bar()TestA课堂上的失踪将被忽视。

有没有办法禁止向(抽象)基类添加新方法?目标是强制在基类中添加新方法,从而强制在所有派生类中实现新方法。

python inheritance abstract-class class python-3.x

4
推荐指数
1
解决办法
78
查看次数

标签 统计

abstract-class ×1

class ×1

inheritance ×1

python ×1

python-3.x ×1