2015-10-26 65 views
2

我想使用縮進代碼控制,並有兩個問題。忽略/處理「意外縮進」錯誤。獲取縮進堆棧級別

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 

謝謝!

+0

99%確定答案是「1)否2)否。但我無法用任何資源來支持它。 – Kevin

回答

0

IndentationErrors是語法錯誤;它們發生在編譯時,而不是運行時。所以你不能在代碼中做任何事情來忽略它們。您需要以某種方式更改解析器。

你可能會考慮使用Python的上下文管理器。這些功能可以在輸入塊時啓用特定的代碼;這可能適合您的用例,即使實際的輸入代碼非常微不足道。有關示例,請參閱contextlib模塊。

相關問題