4798345 发表于 2017-5-31 16:52:18

给深度学习入门者的Python快速教程基础篇之二十二

异常
相比起其他一些语言,在Python中我们可以更大胆地使用异常,因为异常在Python中是非常常见的存在,比如下面这种简单的遍历:

a = ['Why', 'so', 'serious', '?']

for x in a:
print(x)

当用for进行遍历时,会对要遍历的对象调用iter()。这需要给对象创建一个迭代器用来依次返回对象中的内容。为了能成功调用iter(),该对象要么得支持迭代协议(定义__iter__()),要么得支持序列协议(定义__getitem__())。当遍历结束时,__iter__()或者__getitem__()都需要抛出一个异常。__iter__()会抛出StopIteration,而__getitem__()会抛出IndexError,于是遍历就会停止。

在深度学习中,尤其是数据准备阶段,常常遇到IO操作。这时候遇到异常的可能性很高,采用异常处理可以保证数据处理的过程不被中断,并对有异常的情况进行记录或其他动作:
for filepath in filelist: # filelist中是文件路径的列表
try:
with open(filepath, 'r') as f:
# 执行数据处理的相关工作
...

print('{} is processed!'.format(filepath))
except IOError:
print('{} with IOError!'.format(filepath))
# 异常的相应处理
...

晓灰灰 发表于 2017-5-31 22:57:15

谢谢楼主分享

zxopenljx 发表于 2022-11-8 10:07:02

给深度学习入门者的Python快速教程基础篇之二十二
页: [1]
查看完整版本: 给深度学习入门者的Python快速教程基础篇之二十二