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 staticmethod
vừ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__'