python全局/局部变量相关的问题

 
a =2
def test():
    b = 1
    print(a + b)
    a = 4
    print(a + b)

test()
如以上代码所示,
第一行代码运行报错,原因是“UnboundLocalError: local variable 'a' referenced before assignment”

代码执行不是自上而下吗?在我二次赋值a后,运行错误请问是怎么回事呢? 

声明 global a 就可以了

a =2
def test():
    global a
    b = 1
    print(a + b)
    a = 4
    print(a + b)
test()


# Output
3
5

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632