我在一个代码库中遇到了以下代码:
class Worker(object):
state_names = {}
def __init__(self, status_value):
self.status_value = status_value
@property
def state(self):
return self.status_value.value
@state.setter
def state(self, status):
self.ui.debug('state: {} -> {}'
''.format(self.state_name(), self.state_name(status)))
self.status_value.value = status
def state_name(self, s=None):
return self.state_names[s or self.state]
它有一些明显的问题:
self.state_names
为只读且为空self.ui
不存在在四处寻找了一段时间之后,我意识到有一个类是从这个类派生出来的,已知它有self.ui
并提供了self.state_names
。你知道吗
我认为以这种方式实现抽象类有点奇怪,其中虚成员函数的实现假定派生类中的数据成员。你知道吗
在python中有没有更好、更干净的方法来实现这种开发模式?我假设AbstractBaseClass是一个起点。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐