大佬们,为什么global这种情况会报错?
原版,这样是可行的a = 1
def h():
global a
a = 0
print('函数内a等于%d'%a)
h()
print('函数外a等于%d'%a)
输出
函数内a等于0
函数外a等于0
----------------------------------
改成这样就不行了
a = 1
def h():
if a == 1:
global a
a = 0
print('函数内的%d'%a)
h()
print('函数外的%d'%a)
报错
name 'a' is used prior to global declaration
这是为什么? 本帖最后由 wuqramy 于 2020-5-8 11:30 编辑
你要先global a后才能使用a(才能判断)
正确代码:
a = 1
def h():
global a
if a == 1:
a = 0
print('函数内的%d'%a)
h()
print('函数外的%d'%a) 改成a = 1
def h():
global a
if a == 1:
a = 0
print('函数内的%d'%a)
h()
print('函数外的%d'%a) 先声明后调用
global a 挪到if前一行去 suchocolate 发表于 2020-5-8 11:29
先声明后调用
global a 挪到if前一行去
这是一个书上没有的知识点,记下来了
页:
[1]