python语法刻意练习系列17天:9.else与with语句

本文深入解析Python中的with语句,展示其如何通过自动管理资源(如文件)来简化代码并避免内存泄漏,同时探讨了else语句在不同控制结构中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python语法刻意练习系列17天:9.else与with语句

with语句详解

通常而言我们在对一个文件中进行操作时经常要写出下列代码

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__()

else语句

常用于以下几个部分

  • if-else语句
  • while-else语句
  • for-else语句
  • 异常处理与try块搭配使用的else块
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值