title: Is there any need of using abstract static/class methods?
body: <p>For example, in Python you can define abstract class with abstract methods within <a href="https://docs.python.org/3/library/abc.html" rel="nofollow noreferrer">abc module</a> and it works well. Moreover <a href="https://docs.python.org/3/library/abc.html#abc.abstractclassmethod" rel="nofollow noreferrer">since version 3.3</a> you can mix abstractmethod decorator with staticmethod or classmethod decorator legally.</p>
  
  <pre><code>class IDeployer(abc.ABC):
      @staticmethod
      @abc.abstractmethod
      def get_host_type():
          raise NotImplementedError()
  </code></pre>
  
  <p>But ability to mix these decorators doesn't imply the need to do so.</p>
  
  <p>Can I mix these decorators or it will surely point out ill-designed interface?</p>
  
  <p>PS: yes, I know that Python ABC mechanism won't really oblige inheritors to define methods being static/class methods correspondingly. Even abstract method's signature can be changed by inheritors in Python.</p>