函数内部引用并改变变量值报错:name ‘z’ is not defined
在爬虫时遇到这样一个问题,改写成下面简单一点的代码,刚开始报错:local variable ‘a’ referenced before assignment ,在网上查了,解决方法是使用global关键字,就在Y()函数内加上global z,
def X():
z=0
def Y():
global z
z+=1
print(z)
Y()
X()
然后又报错, name ‘z’ is not defined,试了半天发现X()下方也要加上global z才能正常运行。
def X():
global z #函数Y内部希望改变z值时,需要在X()和Y()中都加上global z
z=0
def Y():
global z
z+=1
print(z)
Y()
X() #输出结果为1
`