9

Is there a general naming convention for classes or functions that are meant to be used in with block such as

with CreateSomeContext() as x:
    ...

? Something that signals that the class or the result of a function should be used with with?

4

2 回答 2

2

各自的 PEP 0343中,提到了两个约定:

示例上下文名称中使用的时态不是任意的。当名称指的是在方法中完成并在__enter__方法中撤消 的动作时,使用过去时(“-ed”) __exit__。当名称指的是要在__exit__方法中完成的动作时,使用进行时态(“-ing”)。

于 2018-10-18T08:00:37.917 回答
1

没有命名约定(open, socket.create_connectionurllib.request.urlopen所有返回上下文管理器都可以与 一起使用with),但上下文管理器将具有 __enter____exit__方法。

注意:在 的情况下open("file", "w"),返回值(文件对象)是上下文管理器,而不是 open.

于 2013-11-13T08:14:38.733 回答