是否存在要在with
块中使用的类或函数的通用命名约定,例如
with CreateSomeContext() as x:
...
?是否表示函数的类或结果应与with
一起使用?
答案 0 :(得分:1)
没有命名约定(open
,socket.create_connection
,urllib.request.urlopen
所有返回上下文管理器都可以与with
一起使用)但是上下文管理器将拥有__enter__
}和__exit__
方法。
注意:在open("file", "w")
的情况下,返回值(文件对象)是上下文管理器,不是 open
。< / p>
答案 1 :(得分:1)
在the respective PEP 0343中,提到了两个约定:
示例上下文名称中使用的时态不是 任意的。当名称指代一个时,使用过去时(“ -ed”) 由
__enter__
方法完成的操作,而在__exit__
方法。当名称表示要在__exit__
方法中执行的操作时,将使用渐进式时态(“ -ing”)。