Python函数与Cpython命令实现

时间:2016-03-11 18:08:38

标签: python python-3.x cpython contextmanager

在上下文中,实现新命令(例如可能的ignored [Excepions])而不是将它们定义为函数是有用的吗?


'忽略'contextmanager:

import contextlib

@contextlib.contextmanager
def ignored(*exceptions):
    try:
        yield
    except exceptions:
        pass


用法:

with ignored(IndexError, KeyError):
    ## inside code here


可能的替代方案:

ignored IndexError, KeyError:
    ## inside code here

1 个答案:

答案 0 :(得分:-1)

它让事情变得更加清洁。

查看这两个实现

with file("/tmp/foo", "w") as foo:
    print >> foo, "Hello!"

这基本上相当于:

foo = file("/tmp/foo", "w")
try:
    print >> foo, "Hello!"
finally:
    foo.close()

但你宁愿使用哪个!

查看this以进一步阅读