python django报错
name 'a1' is used prior to global declaration
这个意思翻译过来是说,变量a1在声明为全局变量之前已经有使用了,在声明为全局变量前,已经对这个变量进行了赋值、打印、修改或者其他操作。
看下面的报错例子:
def eg11(): a1=0 print('原a变量值为:%d'%a1) global a1 a1=100 print('原a变量值为:%d'%a1) a1=222 print('原a变量值为:%d'%a1) print(eg11())
在定义global之前,第二句a1=0对a1进行赋值,会报错:
SyntaxError: name 'a1' is assigned to before global declaration
去掉这一句,再运行程序,还会报错
name 'a1' is used prior to global declaration
原因是第三句又对a1这个变量进行了print()操作
也就是说在定义global变量之前,不管是赋值还是print或者进行其他操作,都会报这一类的错误。
如何修正?
将上面的错误例子中的第二行第三行删除就行了。在声明为全局变量之前,不应对这个变量做任何操作。
标签: