返回 StringIO 对象

Returning StringIO object

我有以下 python 代码:

def parse_object(object):
    data = object.read()
    do_other_stuff(data)
def get_object():
    content = "abc"
    try:
        object = StringIO()
        object.write(content)
        return object
    finally:
        object.close()
def main():
    object = get_object()
    parse_object(object)

parse_object 获取文件对象或 StringIO 实例,但显然 StringIO 对象在 get_object 结束后立即关闭。
有没有办法在 get_object 内使用对象后将其关闭?
parse_object 无法更改,因为它在我不想更改的内置库中,get_object 在我的代码中

在Python自动关闭是上下文管理器的典型工作。请参阅 https://docs.python.org/2.7/library/contextlib.html#contextlib.closing

处的参考资料
from contextlib import contextmanager


def parse_object(object):
    data = object.read()
    do_other_stuff(data)

@contextmanager
def get_object():
    content = "abc"
    try:
        object = StringIO()
        object.write(content)
        yield object
    finally:
        object.close()

def main():
    with get_object() as object:
        parse_object(object)