Python 是否可以缩进没有特殊句法意义的块?
可以在python中创建缩进块吗 考虑以下代码Python 是否可以缩进没有特殊句法意义的块?,python,Python,可以在python中创建缩进块吗 考虑以下代码 someCodeHere try: st1 st2 except Exception: pass otherCode 它确实是缩进的,但它将有关于异常的特殊处理。此外,如果我不想捕获异常,我必须提供一个无用的,除了或最终块,该块只包含pass,或raise 我怎样才能把它写成英文呢 someCodeHere somethingToAllowIndentationWithoutAnyMeaning st1 st2
someCodeHere
try:
st1
st2
except Exception:
pass
otherCode
它确实是缩进的,但它将有关于异常的特殊处理。此外,如果我不想捕获异常,我必须提供一个无用的,除了
或最终
块,该块只包含pass
,或raise
我怎样才能把它写成英文呢
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中的缩进具有语法意义。上面的代码确实是正确的,但我想这可能会让更多的读者感到不安,他们会想知道缩进的原理。可以创建一个空的上下文管理器来实现这一点:
class IndentBlock:
def __enter__(self):
return self
def __exit__(self, typ, vall, track):
return False
现在可以写了
someCodeHere
with IndentBlock():
st1
st2
otherCode
但有可能并不意味着建议这样做众所周知,Python中的缩进具有语法意义。上述代码确实是正确的,但我想这可能会让更多的读者感到不安,他们可能会想知道缩进的理由。免责声明:这几乎是@PranjalDoshi删除的一个问题的副本。适用于超过10k的用户。免责声明:这几乎是@PranjalDoshi已删除问题的副本。对于超过10k的用户。