python - 是否可以将其包装在 Python "with"语句中?

标签 python python-2.7

是否可以用它来实现下面的功能? (是否使用“with”关键字)

之前:

try:
    raise Exception("hello")
except Exception as e:
    print "GOT IT"

期望的效果:

def safety():
    try:
        yield
    except Exception as e:
        print "GOT IT"

with safety():
    raise Exception("hello")

它只会让代码更简洁。当前运行第二个代码段会出现错误:

Traceback (most recent call last):
  File "testing.py", line 25, in <module>
    with safety():
AttributeError: __exit__

最佳答案

你离得太近了!

from contextlib import contextmanager

@contextmanager
def safety():
    try:
        yield
    except Exception as e:
        print "GOT IT"

with safety():
    raise Exception("hello")

关于python - 是否可以将其包装在 Python "with"语句中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34776667/

相关文章:

python - 关于Mac OS X 上Django 开发的问题

python - 线串长度(以英里为单位)

python - 如何在 python 中将十进制 0 打印为 000

python - 如何在 python 中识别 csv 文件中的空白字段?

python - getpass 无法正常工作

Python While 循环 - 在 for 循环中嵌套 if 语句以检查数组中的数字

python - Pygame鼠标移动

javascript - jQuery 在扩展 html python Flask 中无法识别

python - 按字母顺序排列句子并计算每个单词出现的次数并打印在表格中

python - 迭代月份列表时插入 None