在等待期间键盘中断时确保 with 语句调用 __exit__()

问题描述

考虑以下代码

import asyncio


class Resource:
    def __enter__(self):
        print("-- enter --")
        return self

    def __exit__(self,exc_type,exc_value,traceback):
        print("-- exit --")


async def main():
    with Resource():
        await asyncio.sleep(10)


if __name__ == "__main__":
    loop = asyncio.get_event_loop()
    loop.run_until_complete(main())

我希望即使在等待 __exit__() 期间按 Ctrl+C 也会调用 sleep(10),但事实并非如此。如何确保清理?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)