python上下文管理关键字_一篇文章告诉你Python上下文管理器怎么用

一般我们操作文件的时候,大家都会知道我们使用with的方式去写,一般如下

with open('xxxx/test.txt') as f:

'xxxxxx'

那么我们为什么要使用这种方式去操作文件呢?因为with这种方式自动帮我们执行了close关闭文件句柄的操作,免的我们忘记关闭句柄,浪费资源。

那我们为什么是使用with方式就可以达到这种效果呢?这就是我们今天说的python的上下文管理器的作用。简单来说上下文管理器必须在这个对象的类中声明__enter__和__exit__方法

下面我们看看怎么定义自己的上下文管理器:

class Context:

def init(self,name):

self.name=name

# 下面使用with语句, 对象的__enter__被触发, 返回值则赋值给as声明的变量,这里就是f

def __enter__(self):

print('自定义上下文管理器')

# return self

#with中代码块执行完毕时触发执行,用来释放资源,例如文件句柄,数据库连接等

def __exit__(self, exc_type, exc_val, exc_tb):

print('程序运行结束,释放资源')

print(exc_type)

print(exc_val)

print(exc_tb)

# return True

复制代码

with Context('test.txt') as f:

print('主逻

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值