gpt4 book ai didi

python - 抽象方法上的装饰器

转载 作者:太空狗 更新时间:2023-10-29 17:21:02 25 4
gpt4 key购买 nike

在 python 中,有没有一种方法可以使抽象方法上的装饰器贯彻到派生的实现中?

例如,在

import abc

class Foo(object):
__metaclass__ = abc.ABCMeta

@abc.abstractmethod
@some_decorator
def my_method(self, x):
pass

class SubFoo(Foo):
def my_method(self, x):
print x
据我所知,

SubFoomy_method 不会用 some_decorator 装饰。有什么方法可以实现这一点,而不必单独装饰 Foo 的每个派生类吗?

最佳答案

我会将其编码为两种不同的方法,就像在标准方法工厂模式描述中一样。

https://www.oodesign.com/factory-method-pattern.html

class Foo(object):
__metaclass__ = abc.ABCMeta

@abc.abstractmethod
@some_decorator
def my_method(self, x):
self.child_method()

class SubFoo(Foo):
def child_method(self, x):
print x

关于python - 抽象方法上的装饰器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19335436/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com