OOP:依赖类 - 子类合同中的受保护属性

时间:2014-11-05 11:16:42

标签: python oop

我在Python编码,但问题似乎与编程语言无关。

我有一个代表系统检查的类:

class Check:
   @abstractmethod
   def run()
     """ You have to define your own run(). As a result, it must set self._ok. """
      ...

   @property
   def is_ok():
      return self._is_ok

然后我们通过继承Check类来进行一组检查,并按以下方式使用它们(简化):

class Checker:
    checks = [check1, check2...]

    def __call__(self):
        for check in self.checks:
            if not check.is_ok:
                alarm()

问题是:是否可以强制子类设置一些受保护的对象属性?

1 个答案:

答案 0 :(得分:0)

我想这可能是可以接受的。

您还可以考虑让子类实现自己的is_ok()方法,而不是修改受保护的属性,这样他们就可以实现自己的检查策略。