Есть ли необходимость в использовании абстрактных статических / классовых методов? - PullRequest
0 голосов
/ 31 мая 2018

Например, в Python вы можете определить абстрактный класс с абстрактными методами в abc module , и это хорошо работает.Более того, , начиная с версии 3.3 , вы можете легально смешивать декоратор абстрактного метода со статическим или классическим декоратором.

class IDeployer(abc.ABC):
    @staticmethod
    @abc.abstractmethod
    def get_host_type():
        raise NotImplementedError()

Но возможность смешивать эти декораторы не подразумевает необходимости в этом.

Могу ли я смешать эти декораторы, или это наверняка укажет на плохо спроектированный интерфейс?

PS: да, я знаю, что механизм Python ABC действительно не обязывает наследников определять методы, являющиеся статическими / классовыми методами соответственно,Даже подпись абстрактного метода может быть изменена наследниками в Python.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...