5
在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
SubFoo
的my_method
不會得到與some_decorator
據我可以告訴裝飾。有沒有什麼辦法可以實現這一點,而無需單獨裝飾Foo
的每個派生類?
只有具有廣泛的魔力,我害怕。是否可以選擇調用抽象方法'_my_method'並且有一個非抽象的,非覆蓋的'my_method',它基本上是'some_decorator(self._my_method)(* args,** kwds)'? – delnan
@delnan嗯,是的,我希望在廣泛的元類魔法和你的好建議之間可能有一個解決方案,它有點乾淨。但我會做我想做的事情。 –