最近在自学Python,跟着书上的代码写了一个课后习题,对这一块的局部变量作用域问题没搞明白,哪位大佬帮忙看看~
如下:
其中lines并没有声明一个全局变量,获取到值之后为什么能在for循环里面继续使用呢?按理说for循环和with open是同级的,lines应该像fileName那样全局声明一下才能在for循环里面使用啊。。。
fileName = 'pi.txt'
with open(fileName) as f:
lines = f.readlines()
str = ''
for line in lines:
str +=line.strip()
print(str)
python 只有函数级作用域(以及全局作用域),没有块级作用域,所以
lines
也是全局的。