Python Заводской метод NamedTuple - PullRequest
0 голосов
/ 29 апреля 2020

У меня есть класс

class Instruction(NamedTuple):
    function: str
    argument_register_1: str
    argument_register_2: str
    result_register: str

и класс, который его расширяет:

class OrderedInstruction(Instruction):
    order: int

    @classmethod
    def from_instruction(cls, instruction: Instruction, order: int):
        return cls(instruction.function,
                   instruction.argument_register_1,
                   instruction.argument_register_2,
                   instruction.result_register,
                   order)

, но проблема в том, что когда я пытаюсь вызвать OrderedInstruction.from_instruction(instruction, 0), я получаю исключение

TypeError: __new__() takes 5 positional arguments but 6 were given

И я не знаю почему. Я не могу отладить его, потому что не вижу звонка на __new__. Может кто-нибудь сказать мне, как создать / использовать OrderedInstruction.from_instruction(instruction, number)?

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