在这个特定的模块中,我只有一个抽象类,所以我尽量避免导入“ABC”包。下面是我的尝试和遇到的问题。我只想用basic
self.attribute = {etc...}
工作任务
__init__
方法,但我想确保它是通过AbstractClass完成的。我在这里看到了一些问题,但所有答案都参考了“ABC”软件包,我同意这是最好的解决方案,但不是针对整个课程中的一个课程。。。
from .util import EventType, NpcType
class Event(object):
@property
def requirements(self):
raise NotImplementedError('subclasses must have requirements')
@requirements.setter
def requirements(self, value):
pass
def stage(self):
raise NotImplementedError('subclasses must override stage()')
class NRMSAL(Event):
def __init__(self):
self.requirements = {
'npc_type': [NpcType.TRAPPER],
'last_event': [],
'cash_available': False,
'item_available': True
}
def stage(self):
pass
from drapi.event import NRMSAL
test = NRMSAL()
print test.requirements
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "/Users/rickmartin/Dropbox/Projects/NpcProject/drapi/event.py", line 7, in requirements
raise NotImplementedError('subclasses must have requirements')
NotImplementedError: subclasses must have requirements