2012-09-27 173 views
0

我是新手到Python和我有一個壓痕錯誤消息時我評論(「#」)下面的代碼的最後兩行:壓痕問題蟒蛇

try: 
     return get_callable(callback), {} 
# except (ImportError, AttributeError), e: 
#  raise ViewDoesNotExist("Tried %s. Error was: %s" % (callback, st r(e))) 

有人能幫忙嗎?

+1

什麼是錯誤信息? –

+0

@Acorn:對不起,我也在編輯我的代碼。但爲什麼我被拒絕了呢? – user1611830

+0

一個try塊必須關閉,除了 – voscausa

回答

5

當註釋掉try/except,放置一個if True: #try前面:

if True: #try: 
     return get_callable(callback), {} 
# except (ImportError, AttributeError), e: 
#  raise ViewDoesNotExist("Tried %s. Error was: %s" % (callback, st r(e))) 

這使得正確的語法,而不必去凹痕內部塊。你也可以後添加finally: pass的評論except

try: 
     return get_callable(callback), {} 
# except (ImportError, AttributeError), e: 
#  raise ViewDoesNotExist("Tried %s. Error was: %s" % (callback, st r(e))) 
    finally: 
     pass 

你唯一的選擇就是註釋掉try:線爲好,刪除塊的縮進:

# try: 
    return get_callable(callback), {} 
# except (ImportError, AttributeError), e: 
#  raise ViewDoesNotExist("Tried %s. Error was: %s" % (callback, st r(e))) 

如果沒有exceptfinally區塊,您不能留下一個空的try:以完成它。

+0

好的,非常感謝! – user1611830

4

您的代碼不再是語法上有效的。 except子句是try子句的必需伴侶。

+0

噢好吧,我對python一無所知,我怎麼能把一個'null code'子句,所以它不會影響代碼的運行? – user1611830

+0

@ user1611830我不知道你的意思。你是否希望這個異常仍然被捕獲,但是在這個事件中什麼也不做,或者你想讓這個異常傳播,就好像這個子句不在那裏一樣? – Marcin

+0

第二個案例,它只是回答,謝謝! – user1611830

2

如果沒有另一個except語句,python正在查找except語句,而是可能會看到一個不縮進的行。

所以你可能會想:「爲什麼這是一個縮進錯誤?我只是錯過了一個except,這與縮進沒有任何關係。」原因是蟒蛇在try:之後「看到」一個沒有縮進的行,並希望它縮進到try之內。