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

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

/ 猿问

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

饮歌长啸 2019-11-15 10:40:02

我是Python的新手,正在阅读别人的代码:

应该urllib.urlopen()跟着urllib.close()?否则,会泄漏连接,对吗?


查看完整描述

3 回答

?
慕容4345310

该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

添加回答

回复

举报

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