上下文管理器类的命名约定(“with”blocks)

时间:2013-11-13 08:04:50

标签: python naming-conventions contextmanager

是否存在要在with块中使用的类或函数的通用命名约定,例如

with CreateSomeContext() as x:
    ...

?是否表示函数的类或结果应与with一起使用?

2 个答案:

答案 0 :(得分:1)

没有命名约定(opensocket.create_connectionurllib.request.urlopen所有返回上下文管理器都可以与with一起使用)但是上下文管理器将拥有__enter__ }和__exit__方法。

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

答案 1 :(得分:1)

the respective PEP 0343中,提到了两个约定:

  

示例上下文名称中使用的时态不是       任意的。当名称指代一个时,使用过去时(“ -ed”)       由__enter__方法完成的操作,而在       __exit__方法。当名称表示要在__exit__方法中执行的操作时,将使用渐进式时态(“ -ing”)。