Pet*_*lák 5 python naming-conventions contextmanager
对于要在with块中使用的类或函数是否存在通用命名约定,例如
with CreateSomeContext() as x:
...
Run Code Online (Sandbox Code Playgroud)
?是否表示应该使用函数的类或结果with?
在相应的 PEP 0343中,提到了两个约定:
示例上下文名称中使用的时态不是任意的。
__enter__当名称指的是在方法中完成并在方法中撤消的 操作时,使用过去时(“-ed”)__exit__。当名称指的是方法中要执行的操作时,使用进行时态(“-ing”)__exit__。
没有命名约定(open, socket.create_connection,urllib.request.urlopen所有返回上下文管理器都可以与 一起使用with),但上下文管理器将具有 __enter__ 和__exit__方法。
注意:在 的情况下open("file", "w"),返回值(文件对象)是上下文管理器,而不是 open。