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

时间:2015-10-26 14:23:41

标签: python exception-handling indentation

我想使用缩进代码控制,并有两个问题。

1)是否可以强制python忽略'意外缩进'错误? 像这样的代码引发了意想不到的缩进'异常。

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

谢谢!

1 个答案:

答案 0 :(得分:0)

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

您可以考虑使用Python的上下文管理器。这些可以在进入块时运行特定代码;这可能适合您的用例,即使实际的输入代码非常简单。有关示例,请参阅contextlib模块。

相关问题