【发布时间】:2011-07-30 08:09:40
【问题描述】:
我有一个需要包含 XML 文件的流的类。
我不一定想要文件流,我可能想要使用其他来源,如数据库、套接字等。
我需要从io module 继承哪个类才能提供来自其他来源的流接口?
【问题讨论】:
-
一个套接字已经和另一个文件有相同的接口。数据库连接通常提供一个“blob”,可以使用
StringIO将其转换为文件行对象。当您的“流”接口(即 Python 的file)已经存在时,为什么要对某些东西进行子类化?有什么独特之处或不同之处? -
为什么要派生? Python 不是 C++。您确定只传递具有正确
read()方法的东西还不够吗? -
@6502: XML 文件可以从数据库加载到流中。我只是在封装行为。
-
@S.Lott:我想要一个已经将 blob 变成类似文件的对象的对象。这种对象应该与文件对象具有相同的接口,以便它与我的需要流的类一起工作。
-
@the_drow。该对象是
StringIO.StringIO( blob )。你还需要什么?