通常而言我们在对一个文件中进行操作时经常要写出下列代码
fp = open('t1.txt', 'w') fp.write('ilovepython') fp.close()因为代码量少的缘故所以看出出来什么,但是万一中间的对文件操作很是复杂,很有可能忘记书写close方法,将文件关闭,而这一行为会导致系统内存负担加重。为了避免这一情况:我们经常书写如下语句:
with open('t1.txt', 'w') as fp: fp.write('ilovepython')这样在执行完fp.write(‘ilovepython’)这一语句后,文件将会自动关闭。好了那么下面引用另一篇文章中的例子来进行说明(python中with的用法) with语句是如何工作的 借用其他人的说法:
紧跟with后面的语句被求值后,返回对象的 enter() 方法被调用,这个方法的返回值将被赋值给as后面的变量。当with后面的代码块全部被执行完之后,将调用前面返回对象的 exit()方法。
下面例子可以具体说明with如何工作:
class Sample: def __enter__(self): print "In __enter__()" return "Foo" def __exit__(self, type, value, trace): print "In __exit__()" def get_sample(): return Sample() with get_sample() as sample: print "sample:", sample运行代码,输出如下
In __enter__() sample: Foo In __exit__()常用于以下几个部分
if-else语句while-else语句for-else语句异常处理与try块搭配使用的else块