>>> 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'

I need to return some data (a file-like object) to wsgi app. That data would be loaded to an cStringIO object if it is not already a cStringIO object(because I dont want to re-read memory again) but isinstance(a, cStringIO.StringO) or isinstance(a, cStringIO.StringIO) both throw an exception. How can I do check whether an instance is cStringIO object?

有帮助吗?

解决方案

Use cStringIO.InputType and cStringIO.OutputType instead:

>>> import cStringIO
>>> s = cStringIO.StringIO('output')
>>> isinstance(s, cStringIO.InputType)
True
>>> s = cStringIO.StringIO()
>>> isinstance(s, cStringIO.OutputType)
True
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top