除上下文管理器的块外,返回值



我尝试了解上下文管理器。Peoples wtite等同于try...finally块。

存在的能力是否可以使用上下文管理器写下代码?

def func():
    try:
        do_something1()
        ...
    except Exception:
        return False
    do_something2()
    return True

另一个单词,如果出现异常,我会停止切除func

def func():
    with context()
        do_something1()
        ...
    do_something2()
    return True

做:

class MyContextManager(object):
    def __enter__(self):
        do_something1()
    def __exit__(self, type, value, traceback):
        do_something2()
with MyContextManager():
    func()

最新更新