一个
with语句也 不能创建一个范围 (比如
if,
for和
while不要么创建一个范围)。
结果,Python将分析代码并看到您在
with语句中进行了赋值,从而使变量成为局部变量(在实际范围内)。
在Python中,变量不需要在 所有代码路径 中 都进行 初始化
:作为程序员,您有责任确保在使用变量之前已为其分配了变量。这可能会导致代码更短:例如,如果您确定一个列表至少包含一个元素,则可以循环分配。在Java中,不认为在循环中进行分配是安全的(因为可能从未执行循环的主体)。
__
for``for
从声明之后我们可以安全地假定变量存在的意义上来说,在范围 之前 进行初始化
with可以更安全
with。另一方面,如果变量 应该
在
with语句中分配,而不是在
with语句实际导致其他检查之前不对其进行初始化:如果以某种方式在语句中跳过了分配,Python将出错
with。
with语句仅用于上下文管理。它会(通过语法)强制您在中打开的上下文
with在缩进结束时关闭。



