在上下文中,实现新命令(例如可能的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
答案 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以进一步阅读