我正在尝试编写一个可以与with关键字一起使用的装饰器.
# regular code ...
with my_exception_handler():
# dangerous code ...
# regular code ...
Run Code Online (Sandbox Code Playgroud)
并且my_exception_handler将接收一个函数并将其包装在一个巨大的try-except中.
我想让它成为装饰器/包装器,因为它是很多我不想复制粘贴的代码.我无法弄清楚从哪里开始.我写了一个普通的装饰器,它适用于函数,但不适用于中间代码块.
你使用的东西with,是一个上下文管理器而不是装饰器 - 这是两个完全不同的东西.
with.编辑:请参阅kindall的帖子,了解如何编写简单的上下文管理器而不必使用完整的类; 我没有时间用这样的例子修改我的答案:)
| 归档时间: |
|
| 查看次数: |
106 次 |
| 最近记录: |