python抽象类的最佳实践

时间:2017-07-14 22:18:23

标签: python

我在代码库中遇到了这段代码:

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]

它有一些明显的问题:

  1. self.state_names是只读且空的
  2. self.ui不存在
  3. 在环顾一段时间后,我意识到有一个类派生于此,并且知道有self.ui并提供self.state_names

    我认为以这种方式实现抽象类有点奇怪,其中虚拟成员函数具有在派生类中承担数据成员的实现。

    在python中有更好,更清晰的方法来进行这种开发模式吗?我将假设AbstractBaseClass是一个起点。

0 个答案:

没有答案