【发布时间】:2013-05-22 06:26:19
【问题描述】:
看起来这样做是很自然的:
with socket(socket.AF_INET, socket.SOCK_DGRAM) as s:
但是 Python 没有为套接字实现上下文管理器。我可以轻松地将它用作上下文管理器吗?如果可以,如何使用?
【问题讨论】:
-
“为什么”问题通常不是 SO 的好问题。也许您可以将其重写为“如何”? :-)
-
@msw:不。那只是变相的为什么问题。一个很好的问题是“如何使用套接字作为上下文管理器?”。我可以正确回答的当前问题。 “它确实”或“否”或“是”。不是很有帮助。
-
@msw:首先,这只是更多地证实了“为什么”问题是不好的,因为它们可以引发无限的“为什么不”下地狱。 :-) 其次,我认为您误解了上下文管理器是什么。在这种情况下,“套接字不像文件”的答案作为“为什么”问题的答案没有任何意义。它不像文件是完全不相关的。上下文管理器不仅仅用于文件。
-
@msw:我没有改变意思,我提出了一个很好的问题。
-
@msw:注意关闭其实是一种临时状态;改善问题,它可以再次重新打开。改进问题在结束之前仍然是一个更好的主意。
标签: python sockets contextmanager