2013-02-24 81 views
0

提高我在書中這個例子,但它並不在我的Python 3.3異常在Python 3.3

x = 'item found' 

def search(): 
    raise x or return 

try: 
    search() 
except x: 
    print('exception') 
else: 
    print('no exception') 

工作,可以在任何一個可以告訴我爲什麼嗎?

+7

這本書是什麼?這是*不*有效的Python。 – 2013-02-24 20:59:45

+3

我認爲你誤讀了這本書 - 它是在說'在這裏放置'raise x'或'return',看看你運行代碼時會發生什麼。 – Eric 2013-02-24 21:20:21

回答

5

簡單:return是一個語句,而不是一個表達式。報表必須自行顯示。 raise也是一種說法,它期望它的表達式可以評估爲例外情況,但xreturn聲明都不符合。

現在,這條線是完全廢話。這不是有效的Python。

相反,Python解析器會將此代碼標記爲無效,併爲整個文件提出SyntaxError例外。沒有包含在文件中的代碼將實際運行:

File "demo.py", line 4 
    raise x or return 
        ^
SyntaxError: invalid syntax 
+0

非常感謝!我正在閱讀學習python。 – NoviceCai 2013-03-24 18:53:34