覆盖方法但保留装饰器 (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
的工作不是重写修饰函数,而是继承的修饰函数使用的未修饰函数。
我有一个 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
的工作不是重写修饰函数,而是继承的修饰函数使用的未修饰函数。