Python UnboundLocalError问题求助:函数无法识别全局变量a
解决UnboundLocalError问题
你的问题出在函数test()里修改全局变量a时,没有正确声明它为全局变量。虽然你提到尝试过global a,大概率是声明的位置不对。
正确的做法是在函数内部第一行就用global关键字声明a,告诉Python这个变量属于全局作用域,这样就能正常修改它的值了。修改后的代码如下:
import keyboard import time a = 0 def test(): global a # 声明a为全局变量,必须放在函数内的起始位置 a += 1 print("The number is now ", a) time.sleep(1) while not keyboard.is_pressed('i'): # 简化条件判断写法,更简洁 test()
补充说明:
nonlocal关键字仅适用于修改嵌套函数中的外层局部变量,这里a是全局变量,所以nonlocal并不适用,必须用global。- 原循环条件
keyboard.is_pressed('i') == False可以简化为not keyboard.is_pressed('i'),代码可读性更强。
内容的提问来源于stack exchange,提问作者Oliver Sklar
相关产品推荐
相关产品推荐

