0
>>> 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 对象?

4

1 回答 1

8

使用cStringIO.InputTypeandcStringIO.OutputType代替:

>>> import cStringIO
>>> s = cStringIO.StringIO('output')
>>> isinstance(s, cStringIO.InputType)
True
>>> s = cStringIO.StringIO()
>>> isinstance(s, cStringIO.OutputType)
True
于 2013-02-06T17:37:28.987 回答