In Python gibt es eine Möglichkeit, einen Dekorator auf einer abstrakten Methode zu den abgeleiteten Implementierung (en) durchführen zu lassen?Decorators auf abstrakte Methoden
Zum Beispiel in
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
‚s my_method
nicht mit some_decorator
eingerichtet bekommen, soweit ich das beurteilen kann. Gibt es eine Möglichkeit, dies zu erreichen, ohne jede abgeleitete Klasse von Foo
individuell dekorieren zu müssen?
Nur mit umfangreicher Magie, fürchte ich. Ist es eine Alternative, die abstrakte Methode '_my_method' aufzurufen und eine nicht-abstrakte, nicht-überschriebene' my_method' zu haben, die grundsätzlich 'some_decorator (self._my_method) (* args, ** kwds)'? – delnan
@delnan Hmm, yeah, ich hatte gehofft, dass es eine Lösung geben könnte, die irgendwo zwischen metaklassischer Magie und deinem guten Vorschlag liegt, der etwas sauberer ist. Aber ich werde tun, was ich tun muss, denke ich. –