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

我应该在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 关注
  • 1255 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信