5
파이썬에서는 추상 메서드에서 데코레이터를 파생 된 구현으로 가져 오는 방법이 있습니까? 추상 메서드 데코레이터
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'를 호출하고 기본적으로'some_decorator (self._my_method) (* args, ** kwds)'를 수행하는 추상화되지 않은 재정의 된'my_method'를 갖는 대안입니까? – delnan
@delnan 흠, 예, 저는 방대한 메타 크라스 마법과 당신의 좋은 제안 사이의 해결책이 조금 있으면 좋겠다고 생각했습니다. 그러나 나는 내가해야 할 일을 할 것입니다. –