写一个功能,运行报错,name 'number' is used prior to global declaration ,查资料梳理一下
因为这个函数需要调用多次,第一次调用的时候,走if语句,后面的走else语句,所以需要一个判断对象,我这里设置了一个全局变量,以它为判断标准,首次调用函数后,全局变量➕ 1 ,参照代码如下。实际运行后
1 number = 10 2 print('number 外',number) 3 def add(): 4 if number == 10: 5 print('number=',number)
else:
print('-------') 6 global number 7 number = 12 8 add()
运行结果是:
global number
^
SyntaxError: name 'number' is used prior to global declaration
网上查了一下资料,错误原因如下:
在更改全局变量前调用了全局变量,这样写代码,在不运行前,我使用pycharm不会有任何提示,让你觉得写得很完美,一运行很伤心。一开始我这里当成c的全局变量使用习惯了。
解决方法:
函数添加了一个参数,以这个参数为判断标准,然后更改全局变量