【发布时间】:2019-09-15 01:56:01
【问题描述】:
class Test:
def __init__(self):
pass
def __enter__(self):
pass
def __exit__(self, exc_type, exc_val, exc_tb):
pass
with Test():
print (1) # any way to ignore it?
有没有办法忽略(不执行)with 语句体?
也就是说,在这种情况下,我不想执行 print (1)(但我不想将此表达式包装在函数中等)
我在一个个人实验项目中需要这个。
尝试了一些选项,例如抛出异常,但似乎不起作用。
PS:
我不能在任何结构中包装with body(至少在调用 Test 类之前)。
我想在Test类里面实现这个,比如调用一个类的时候,一些monkeypatch可能会起作用等等。
PS2:忽略 with body 后程序应该仍然可以工作
【问题讨论】:
-
您不能将另一个布尔变量与
if语句一起使用吗? -
你想完成什么?
-
我想忽略 with 正文中的所有表达式。剩下的就很长了。简而言之,我想尝试将 with 语句用作装饰器之类的东西。
-
似乎是这样。泰萨尔
-
为了节省您的时间,直接进入 Python3 版本:stackoverflow.com/a/54765496/5754797
标签: python