是否可以在python中创建缩进块?
考虑以下代码
someCodeHere
try:
st1
st2
except Exception:
pass
otherCode
它确实是缩进的,但它将对异常进行特殊处理。此外,如果我不想捕获异常,我必须提供一个只包含pass
或raise
的无用的except
或finaly
块
我如何将其写为
someCodeHere
somethingToAllowIndentationWithoutAnyMeaning
st1
st2
otherCode
可以创建一个空上下文管理器来实现这一点:
class IndentBlock:
def __enter__(self):
return self
def __exit__(self, typ, vall, track):
return False
现在可以写入
someCodeHere
with IndentBlock():
st1
st2
otherCode
但有可能并不意味着建议这样做众所周知,Python中的缩进具有语法意义。上面的代码确实是正确的,但IMHO可能会让更多的读者感到不安,他们会想知道缩进的理由。