0

我有一个类和一个子类,并想从框架prefect.io继承一个带有装饰器@task的方法。

代码示例:

班级

@task
def test1(self):
     pass

子类

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

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

4

2 回答 2

2

我通常会推荐类似的东西

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

    def test1_impl(self):
        ...


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

NowChild的工作不是重写被修饰的函数,而是被继承的修饰函数使用的未修饰函数。

于 2021-08-12T01:11:28.587 回答
0

为什么不再次导入任务?

from prefect import task
于 2021-08-12T01:02:32.603 回答