W mojej aplikacji w języku Python chcę utworzyć metodę, która będzie jednocześnie staticmethod
rozszerzeniem a i abc.abstractmethod
. Jak mam to zrobic?
Próbowałem zastosować oba dekoratory, ale to nie działa. Jeśli to zrobię:
import abc
class C(object):
__metaclass__ = abc.ABCMeta
@abc.abstractmethod
@staticmethod
def my_function(): pass
Dostaję wyjątek *, a jeśli to zrobię:
class C(object):
__metaclass__ = abc.ABCMeta
@staticmethod
@abc.abstractmethod
def my_function(): pass
Metoda abstrakcyjna nie jest egzekwowana.
Jak mogę stworzyć abstrakcyjną metodę statyczną?
*Wyjątek:
File "c:\Python26\Lib\abc.py", line 29, in abstractmethod
funcobj.__isabstractmethod__ = True
AttributeError: 'staticmethod' object has no attribute '__isabstractmethod__'