是否有一般的命名约定用于类或函数,它们旨在用于 with
语句块中?
with CreateSomeContext() as x:
...
有什么可以表示一个类或函数的结果需要使用with
的信号吗?
是否有一般的命名约定用于类或函数,它们旨在用于 with
语句块中?
with CreateSomeContext() as x:
...
有什么可以表示一个类或函数的结果需要使用with
的信号吗?
在相应的PEP 0343中,提到了两种惯例:
示例上下文名称中使用的时态并不是任意的。当名称指的是在
__enter__
方法中完成并在__exit__
方法中撤消的操作时,使用过去时态("-ed")。当名称指的是在__exit__
方法中要完成的操作时,则使用进行时态("-ing")。
stdout_redirected
和stdlib contextlib.redirect_stdout
),我认为这个约定并未被广泛接受/采用。 - igortg在IT技术中,没有统一的命名规范。但是上下文管理器通常会包含 __enter__
和 __exit__
方法,可以使用 with
语句来调用 (open
, socket.create_connection
, urllib.request.urlopen
都返回上下文管理器)。
注意:对于 open("file", "w")
,返回值(即文件对象)才是上下文管理器,而不是 open
函数本身。
this_is_a_function_or_variable
来表示函数和变量名称,使用ThisIsAClassObject
来表示类(类型),使用FULL_CAPITALS
来表示常量。 - Peter Varowith
可以用于许多不同的目的,因此没有必要将单词context
明确地放在名称中。但是,在仅使用此类时,这种情况通常发生。有许多可以与with
一起使用的类,它们的名称中没有 “context” 这个词,例如从文件到warnings.catch_warnings
。 - Bakuriu