LINUX.ORG.RU

История изменений

Исправление qaqa, (текущая версия) :

можно сделать так

А зачем? Это странно.

Я имел в виду что метод

    @classmethod
    def from_data(cls, op_code: OpCode, data: io.BytesIO) -> 'BaseOp':
        return _OP_CLASSES_BY_CODE[op_code]._from_data(data)

должен быть или методом класса-фабрики, или просто функцией внешней.

class OpFactory:
    def from_data(self, op_code: OpCode, data: io.BytesIO) -> 'BaseOp':
        return _OP_CLASSES_BY_CODE[op_code].from_data(data)

Ну и про _from_data - по идее без опкода ты не можешь (не должен) знать что там тебе пришло

Какая разница, что там с опкодом? Опкод тебе дает какие-то гарантии особые? :) Считай, что пользователь класса всегда знает какой там опкод. Или какой-тип сообщения.

Исходная версия qaqa, :

можно сделать так А зачем? Это странно.

Я имел в виду что метод

    @classmethod
    def from_data(cls, op_code: OpCode, data: io.BytesIO) -> 'BaseOp':
        return _OP_CLASSES_BY_CODE[op_code]._from_data(data)

должен быть или методом класса-фабрики, или просто функцией внешней.

class OpFactory:
    def from_data(self, op_code: OpCode, data: io.BytesIO) -> 'BaseOp':
        return _OP_CLASSES_BY_CODE[op_code].from_data(data)

Ну и про _from_data - по идее без опкода ты не можешь (не должен) знать что там тебе пришло

Какая разница, что там с опкодом? Опкод тебе дает какие-то гарантии особые? :) Считай, что пользователь класса всегда знает какой там опкод. Или какой-тип сообщения.