Дизайн модуля Python xdrlib
Я недавно начал использовать модуль Python xdrlib. Я был удивлен, увидев, что Packer
а также Unpacker
классы, которые вам нужно создать, и содержит такой метод, как reset
а также get_buffer
, Звонки в Packer
а также Unpacker
Методы экземпляра накапливают данные в буфере до тех пор, пока вы их не используете. Стандартное использование, по-видимому, заключается в том, что вы создаете один экземпляр Packer и один экземпляр Unpacker для каждого клиента, но это не безопасно для потоков /
Я сказал, что был удивлен, потому что я ожидал иметь только функции для упаковки данных в байты, а затем писать такие вещи, как:
mybuffer += pack_int(3)
или имеющий класс Message (буфер с такими методами, как append_int
) и удаление экземпляра сообщения после использования.
Нынешний дизайн, кажется, ставит постоянство в неправильном месте. Это действительно так или есть какая-то важная особенность, которую мне не хватает? Каково обоснование этого дизайна?