忽略/处理'unexpected indent'错误。获取缩进堆栈级别



我想在代码控制中使用缩进,有两个问题:

1)是否有可能强制python忽略"意外缩进"错误?像这样的代码会引发'unexpected缩进'异常。

def test():
    print ('hello')
        print ('again!')

这里是否有任何标志或其他技巧来正常执行上述代码?

2)如何在程序中获得缩进级别?这样的事情可能吗?

import introspectionmagic
def a():
    l = introspectionmagic.get_indent_level_of_function_call ()
    print ('level =', l)
def test():
    a()
        a()
输出:

level = 1
level = 2

谢谢!

IndentationErrors是语法错误;它们发生在编译时,而不是运行时。所以你不能在代码中做任何事情来忽略它们;您需要以某种方式更改解析器。

你可以考虑使用Python的上下文管理器。它们允许在进入块时运行特定的代码;这可能适合您的用例,即使实际的输入代码相当琐碎。有关示例,请参阅contextlib模块。

最新更新