检查一个实例是否为'StringIO

0 投票
1 回答
2962 浏览
提问于 2025-04-17 15:00
>>> 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.InputTypecStringIO.OutputType 来代替:

>>> import cStringIO
>>> s = cStringIO.StringIO('output')
>>> isinstance(s, cStringIO.InputType)
True
>>> s = cStringIO.StringIO()
>>> isinstance(s, cStringIO.OutputType)
True

撰写回答