`staticmethod` и` abc.abstractmethod`: Будет ли он смешиваться?

В моем приложении Python я хочу создать метод, который одновременно является статическим методом и abc.abstractmethod . Как мне это сделать?

Я пробовал применить оба декоратора, но ничего не вышло. Если я сделаю следующее:

import abc

class C(object):
    __metaclass__ = abc.ABCMeta

    @abc.abstractmethod
    @staticmethod    
    def my_function(): pass

Я получу исключение *, и если я сделаю следующее:

class C(object):
    __metaclass__ = abc.ABCMeta

    @staticmethod    
    @abc.abstractmethod
    def my_function(): pass

Абстрактный метод не применяется.

Как я могу создать абстрактный статический метод?

* Исключение:

File "c:\Python26\Lib\abc.py", line 29, in abstractmethod
 funcobj.__isabstractmethod__ = True
AttributeError: 'staticmethod' object has no attribute '__isabstractmethod__'

85
задан Ethan Furman 22 September 2013 в 16:17
поделиться