Trong ứng dụng Python của mình, tôi muốn tạo một phương thức vừa là a staticmethodvừa là abc.abstractmethod. Làm thế nào để tôi làm điều này?
Tôi đã thử áp dụng cả hai trình trang trí, nhưng nó không hoạt động. Nếu tôi làm điều này:
import abc
class C(object):
__metaclass__ = abc.ABCMeta
@abc.abstractmethod
@staticmethod
def my_function(): pass
Tôi nhận được một ngoại lệ * và nếu tôi làm điều này:
class C(object):
__metaclass__ = abc.ABCMeta
@staticmethod
@abc.abstractmethod
def my_function(): pass
Phương thức trừu tượng không được thực thi.
Làm cách nào để tạo một phương thức tĩnh trừu tượng?
*Sự ngoại lệ:
File "c:\Python26\Lib\abc.py", line 29, in abstractmethod
funcobj.__isabstractmethod__ = True
AttributeError: 'staticmethod' object has no attribute '__isabstractmethod__'