将对象变为“字符缓冲区对象”

1 投票
2 回答
3104 浏览
提问于 2025-04-16 23:44

我有一个自定义的类,这个类里面有一些字符串数据。我想把这些字符串数据保存到一个文件里,使用文件句柄的写入对象。我已经实现了 __str__() 方法,这样我就可以用 str(myobject) 来获取这个对象的字符串表示。那么,有没有什么方法可以让 Python 把我的对象当作字符缓冲区对象来处理呢?

2 个回答

0

这里没有一个单独的函数,而是一系列的函数,比如 readseek 等等。

你为什么不去扩展一下 StringIO.StringIO 呢?它本身就是一个字符串缓冲区。

0

如果你想把自己的对象用在一些库代码里,而这些代码需要把你给的东西写入文件,那么你可能需要创建一个“鸭子文件”类。这个类的作用就像一个file,但它能支持你的字符串对象。可惜的是,file这个类型在Python 2.6中并不好直接继承。你需要实现一些文件协议的方法,比如writewritelinestell等等,这样库代码才能正常工作。

撰写回答