python中,如图,为啥上面?处是错误的?

本地变量'x'在赋值前被引用,为啥下面那个y被赋值前也没定义,却没错,上面的却是错的... 本地变量'x'在赋值前被引用,为啥下面那个y被赋值前也没定义,却没错,上面的却是错的 展开
 我来答
Smart0Space
2021-07-30 · 超过25用户采纳过TA的回答
知道答主
回答量:52
采纳率:80%
帮助的人:16.4万
展开全部

因为上面的“x+=x”相当于在f2()函数中通过操作变量x得到变量x。

然而,f2()函数属于函数f1(),那么对于f2()函数来说,f1()函数中的变量也相当于f2()函数的全局变量,因此,f1()函数的变量x,就是相对于f2()函数的“全局变量”。

在Python中,您无法通过全局变量创建一个同名的局部变量。您可以尝试在f1()函数的第一行加入如下代码:

i=i*2

也会出现同样的错误,因为对于f1()函数来说,变量i已经是全局变量,无法通过全局变量创建一个同名的局部变量。

总的来说就是同名的全局和局部变量的操作,不能够冲突,否则Python解释器无法辨别和赋值变量。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式