У меня есть синтаксическая система для текстовых записей фиксированной длины на основе таблицы макетов:
parse_table = [\
('name', type, length),
....
('numeric_field', int, 10), # int example
('textc_field', str, 100), # string example
...
]
Идея состоит в том, что, учитывая таблицу для типа сообщения, я просто просматриваю эту строку и восстанавливаю из нее словарь, в соответствии с записями в таблице.
Теперь я могу обрабатывать строки и собственные целые числа, но int()
не будет анализировать поля всех пространств (по уважительной причине, конечно).
Я хотел обработать его, указав подкласс int
, который обрабатывает пустые строки. Таким образом, я мог бы пойти и изменить тип соответствующих записей таблицы, не введя дополнительные kludges в код синтаксического анализа (например, фильтры), и он будет "просто работать".
Но я не могу понять, как переопределить конструктор встроенного типа в подтип, поскольку определение конструктора в подклассе, похоже, не помогает. Я чувствую, что мне не хватает чего-то фундаментального здесь о том, как работают встроенные типы Python.
Как мне подойти к этому? Я также открыт для альтернатив, которые не добавляют слишком много сложности.