我在书中有这个例子,但它在我的python 3.3
中不起作用x = 'item found'
def search():
raise x or return
try:
search()
except x:
print('exception')
else:
print('no exception')
有谁可以告诉我为什么?
答案 0 :(得分:5)
简单:return
是一个语句,而不是表达式。声明必须按照自己的方式出现。 raise
也是一个声明,它期望它的表达式来评估要引发的异常,但x
和return
语句都不能满足这一要求。
就目前而言,这条线完全是胡说八道。它不是有效的Python。
相反,Python解析器会将此代码标记为无效,并为整个文件引发SyntaxError
异常。实际上不会运行文件中包含的代码:
File "demo.py", line 4
raise x or return
^
SyntaxError: invalid syntax