“ with”语句中变量的范围?

发布于 2021-01-29 18:39:29

我只firstline使用python从python中读取:

with open(file_path, 'r') as f:
    my_count = f.readline()
print(my_count)

我对变量my_count的范围感到困惑。虽然打印效果很好,但是最好先my_count = 0用语句在外部做一些事情(例如,在C中用于做int
my_count = 0

关注者
0
被浏览
53
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    一个with语句也 不能创建一个范围 (比如ifforwhile不要么创建一个范围)。

    结果,Python将分析代码并看到您在with语句中进行了赋值,从而使变量成为局部变量(在实际范围内)。

    在Python中,变量不需要在 所有代码路径都进行 初始化
    :作为程序员,您有责任确保在使用变量之前已为其分配了变量。这可能会导致代码更短:例如,如果您确定一个列表至少包含一个元素,则可以循环分配。在Java中,不认为在循环中进行分配是安全的(因为可能从未执行循环的主体)。
    __for``for

    从声明之后我们可以安全地假定变量存在的意义上来说,在范围 之前 进行初始化with可以更安全with。另一方面,如果变量 应该
    with语句中分配,而不是在with语句实际导致其他检查之前不对其进行初始化:如果以某种方式在语句中跳过了分配,Python将出错with

    with语句仅用于上下文管理。它会(通过语法)强制您在中打开的上下文with在缩进结束时关闭。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看