python报错 UnboundLocalError:local variable 'XXX' referenced before assignment


报错:UnboundLocalError:local variable 'b' referenced before assignment.

原因是:在函数外定义的变量是全局变量,函数里定义的是局部变量,在没有明确声明函数里的变量是全局变量的话,默认都是局部变量.


可以看到,在函数里输出的b的值为123,但是在函数外输出b是1,说明并非是同一个变量。但是当我们把第15行的b = 123改成b+=123,这个时候可能我们是想在b = 1的基础上让b加上123,但是我们并没有告诉电脑b是全局变量,所以b默认还是局部的变量,此时我们让b += 123.他就会报这个错误,因为我们并没有给b初始化一个值,所以他是没法对123进行累加,所以报次错误。

解决办法:在函数里加上 global b

global标识符:它是全局变量的标识符。如果某变量在函数里没有定义, 就自动使用相应的全局变量. 没有global是不可能手动指定一个名字是全局的.


©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容