将对象变为“字符缓冲区对象”
我有一个自定义的类,这个类里面有一些字符串数据。我想把这些字符串数据保存到一个文件里,使用文件句柄的写入对象。我已经实现了 __str__()
方法,这样我就可以用 str(myobject)
来获取这个对象的字符串表示。那么,有没有什么方法可以让 Python 把我的对象当作字符缓冲区对象来处理呢?
2 个回答
0
这里没有一个单独的函数,而是一系列的函数,比如 read
、seek
等等。
你为什么不去扩展一下 StringIO.StringIO
呢?它本身就是一个字符串缓冲区。
0
如果你想把自己的对象用在一些库代码里,而这些代码需要把你给的东西写入文件,那么你可能需要创建一个“鸭子文件”类。这个类的作用就像一个file
,但它能支持你的字符串对象。可惜的是,file
这个类型在Python 2.6中并不好直接继承。你需要实现一些文件协议的方法,比如write
、writelines
、tell
等等,这样库代码才能正常工作。