Python 是否可以缩进没有特殊句法意义的块?

Python 是否可以缩进没有特殊句法意义的块?,python,Python,可以在python中创建缩进块吗 考虑以下代码 someCodeHere try: st1 st2 except Exception: pass otherCode 它确实是缩进的,但它将有关于异常的特殊处理。此外,如果我不想捕获异常,我必须提供一个无用的,除了或最终块,该块只包含pass,或raise 我怎样才能把它写成英文呢 someCodeHere somethingToAllowIndentationWithoutAnyMeaning st1 st2

可以在python中创建缩进块吗

考虑以下代码

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的用户。