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