python核心编程课后题第二版第十章264页

10-6.改进的open()。为内建的open函数创建一个封装,使得成功打开文件后,返回文件句柄;若打开失败则返回None,而不是生成一个异常。这样你打开文件时就不需要额外的异常处理语句。

def safe_open(name):
    try:
        f = open(name)
        return f
    except IOError:
        return None

f = safe_open('test1.txt')
print f

10-8.改进的raw_input()。本章的开头,我们给出了一个“安全”的float()函数,它建立在内建函数float()上,可以检测并处理float()可能会引发的两种异常。同样,raw_input()函数也可能会生成两种异常,EOFError(文件末尾EOF,在Unix下是由于按下了CTRL+D,在Dos下是因为CTRL+Z)或是KeyboradInterrupt(取消输入,一般是由于按下了CTRL+C)。请创建一个封装函数safe_input(),在发生异常时返回None。

def safe_raw_input(hi):
    try:
        return raw_input(hi)
    except (EOFError, KeyboardInterrupt):
        return None


a = safe_raw_input('hi>>')
print a

 

posted on 2013-01-07 23:08  alexkh  阅读(284)  评论(0编辑  收藏  举报