Jas*_*per 12 python boolean exception-handling exception
在这个答案/sf/answers/1937657011/中,提供了以下构造
a=[1,2]
while True:
if IndexError:
print ("Stopped.")
break
print(a[2])
Run Code Online (Sandbox Code Playgroud)
实际上打印"已停止".和破坏(用Python 3.4.1测试).
为什么?!为什么if IndexError甚至合法?为什么a[2]不会引发IndexError不带try ... except身边?
Dan*_*man 28
所有对象都有一个布尔值.如果没有另外定义,则该布尔值为True.
所以这段代码就等同于做if True; 所以执行break立即到达声明,print永远不会到达.
| 归档时间: |
|
| 查看次数: |
769 次 |
| 最近记录: |