0

我在书中有这个例子,但它在我的 python 3.3 中不起作用

x = 'item found'

def search():
    raise x or return

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

谁能告诉我为什么?

4

1 回答 1

5

简单:return是一个语句,而不是一个表达式。语句必须出现在自己的行上。raise也是一个语句,它期望它的表达式评估为引发异常,但xreturn语句既不满足,也不满足。

就目前而言,这条线完全是胡说八道。它不是有效的 Python。

相反,Python 解析器会将此代码标记为无效并为整个文件SyntaxError引发异常。文件中包含的任何代码都不会实际运行:

  File "demo.py", line 4
    raise x or return
                    ^
SyntaxError: invalid syntax
于 2013-02-24T21:00:40.570 回答