Сделать объект «буферным символьным объектом» - PullRequest
1 голос
/ 17 августа 2011

У меня есть собственный класс, в котором есть строковые данные. Я хотел бы иметь возможность сохранить эти строковые данные в файл, используя объект записи дескриптора файла. Я реализовал __str__(), поэтому я могу сделать str(myobject), каков эквивалентный способ заставить python считать мой объект объектом символьного буфера?

Ответы [ 2 ]

0 голосов
/ 17 августа 2011

Если вы пытаетесь использовать свой объект с библиотечным кодом, который предполагает возможность записи того, что вы даете ему, в файл, то вам, возможно, придется прибегнуть к реализации класса «файл утки», который действует как file но поддерживает ваш строковый объект. К сожалению, file - это не тот тип, который вы можете легко подклассировать, по крайней мере, в Python 2.6. Вам нужно будет реализовать достаточно файлового протокола (write, writelines, tell и т. Д.), Чтобы код библиотеки работал должным образом.

0 голосов
/ 17 августа 2011

Нет ни одной функции, но есть целый ряд из них - read, seek и т. Д.

Почему бы вам не создать подкласс StringIO.StringIO, который уже является строковым буфером

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