覆盖方法但保留装饰器 (python)

Overwrite methods but keep decorator (python)

我有一个 Class 和一个子类,想从框架 prefect.io[ 继承一个装饰器 @task 的方法=31=].

代码示例:

Class

@task
def test1(self):
     pass

子类

def test2(self):
     print("succeed")

但是现在方法 test2 没有装饰器 @task 了。我不能在子类中声明 @task。我可以覆盖该方法但保留 @task 吗?

为什么不重新导入任务?

from prefect import task

我通常推荐

class Base:
    @task
    def test1(self):
        return self.test1_impl()

    def test1_impl(self):
        ...


class Child:
    def test1_impl(self):
        ...

现在 Child 的工作不是重写修饰函数,而是继承的修饰函数使用的未修饰函数。