为了账号安全,请及时绑定邮箱和手机立即绑定

我应该在urllib.urlopen()之后调用close()吗?

我应该在urllib.urlopen()之后调用close()吗?

饮歌长啸 2019-11-15 10:40:02
我是Python的新手,正在阅读别人的代码:应该urllib.urlopen()跟着urllib.close()?否则,会泄漏连接,对吗?
查看完整描述

3 回答

?
子衿沉夜

TA贡献1828条经验 获得超3个赞

该close方法必须在的结果上调用urllib.urlopen,而不是在urllib您正在考虑的模块本身上调用(如您所提到的urllib.close-不存在)。


最好的方法:代替x = urllib.urlopen(u)etc,使用:


import contextlib


with contextlib.closing(urllib.urlopen(u)) as x:

   ...use x at will here...

该with语句和closing上下文管理器将确保即使在出现异常的情况下也能正确关闭。


查看完整回答
反对 回复 2019-11-15
  • 3 回答
  • 0 关注
  • 1299 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号