我应该测试if
某种东西是有效的还是只是try
为了做它并捕获异常?
- 有没有可靠的文档说首选方法?
- 还有一种方法更pythonic吗?
例如,我应该:
if len(my_list) >= 4:
x = my_list[3]
else:
x = 'NO_ABC'
要么:
try:
x = my_list[3]
except IndexError:
x = 'NO_ABC'
一些想法...
PEP 20说:
错误绝不能默默传递。
除非明确地保持沉默。
应该使用a try
而不是an if
解释为无声传递的错误吗?如果是这样,您是否通过以这种方式使用它来明确使其静音,从而使其正常运行?
我不是指只能以一种方式做事的情况;例如:
try:
import foo
except ImportError:
import baz
if index in mylist
测试索引是否是mylist的元素,而不是可能的索引。您可能想要if index < len(mylist)
代替。