检查一个实例是否为'StringIO
>>> import cStringIO
>>> a = cStringIO.StringIO()
>>> type(a)
<type 'cStringIO.StringO'>
>>> isinstance(a, cStringIO.StringO)
Traceback (most recent call last):
File "<pyshell#223>", line 1, in <module>
isinstance(a, cStringIO.StringO)
AttributeError: 'module' object has no attribute 'StringO'
我需要把一些数据(类似文件的对象)返回给wsgi应用。如果这些数据还不是cStringIO对象,我会把它加载到一个cStringIO对象里(因为我不想再读取内存)。但是,当我用isinstance(a, cStringIO.StringO)或者isinstance(a, cStringIO.StringIO)来检查时,都会出现错误。我该怎么检查一个实例是否是cStringIO对象呢?
1 个回答
8
使用 cStringIO.InputType
和 cStringIO.OutputType
来代替:
>>> import cStringIO
>>> s = cStringIO.StringIO('output')
>>> isinstance(s, cStringIO.InputType)
True
>>> s = cStringIO.StringIO()
>>> isinstance(s, cStringIO.OutputType)
True