发布网友 发布时间:2022-04-18 04:04
共1个回答
热心网友 时间:2022-04-18 05:34
因为上面的“x+=x”相当于在f2()函数中通过操作变量x得到变量x。
然而,f2()函数属于函数f1(),那么对于f2()函数来说,f1()函数中的变量也相当于f2()函数的全局变量,因此,f1()函数的变量x,就是相对于f2()函数的“全局变量”。
在Python中,您无法通过全局变量创建一个同名的局部变量。您可以尝试在f1()函数的第一行加入如下代码:
i=i*2
也会出现同样的错误,因为对于f1()函数来说,变量i已经是全局变量,无法通过全局变量创建一个同名的局部变量。
总的来说就是同名的全局和局部变量的操作,不能够冲突,否则Python解释器无法辨别和赋值变量。