【发布时间】:2014-03-12 13:17:56
【问题描述】:
在this tutorial 之后,我正在尝试在 Python 中使用抽象基类。于是我构建了两个文件:
basis.py:
import abc
class PluginBase(object):
__metaclass__ = abc.ABCMeta
@abc.abstractmethod
def load(self, input):
return
和implementation.py:
import abc
from basis import PluginBase
class SubclassImplementation(PluginBase):
def load(self, input):
print input
return input
if __name__ == '__main__':
print 'Subclass:', issubclass(SubclassImplementation, PluginBase)
print 'Instance:', isinstance(SubclassImplementation(), PluginBase)
运行python implementation.py 工作正常,但我现在想将implementation.py 用作其他模块。所以我进入命令行并执行:
>>> from implementation import SubclassImplementation as imp
>>> imp.load('lala')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unbound method load() must be called with SubclassImplementation instance as first argument (got str instance instead)
>>>
我在这里做错了什么,我怎样才能做到这一点?欢迎所有提示!
【问题讨论】:
标签: python abstract-class abc