当前分类:python>>正文

SyntaxError: name 'a1' is used prior to global declaration

来源:互联网   时间:2022年6月27日   编辑

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或者进行其他操作,都会报这一类的错误。

如何修正?

将上面的错误例子中的第二行第三行删除就行了。在声明为全局变量之前,不应对这个变量做任何操作。

[猜你喜欢]

标签: python报错