函数与变量
发现一个问题现在,假设我们建立了一个函数a:
def a():
v1 = 20
print("a")
又建立了函数b:
#在a里面
def a():
v1 = 20
print("a")
def b():
global a
while v1 == 20:
print("符合条件!")
然而,会报错{:10_277:}
只不过,把a给去掉就不会了……
这道理谁都懂,但是即使global是可以修改全局变量……
函数里面的嵌套函数使用还是会报错!!!!!
求解
……话说……如果真的要修改当前函数上一层的变量怎么办 {:10_277:} 用nonlocal啊 Python系统3.8.1
照常理来说,
函数里面的嵌套函数使用还是会报错
这种事应该不会发生吧…… 学习一下 你真是个小天才呢! global a 是个什么鬼?
你的程序中没有看到全局变量a啊?
估计你打算写global v1吧?但是v1也不是全局变量啊
你在函数b中用到了外层的变量v1,那就应该用nonlocal关键字指出v1非局部变量
应该在函数b中使用变量v1之前,加上 nonlocal v1 sunrise085 发表于 2020-4-20 16:02
global a 是个什么鬼?
你的程序中没有看到全局变量a啊?
估计你打算写global v1吧?但是v1也不是全局变 ...
咳咳,不好意思啊
重点是有一个全局变量a
然后有一个函数fun1
fun1里面有一个函数fun2
在fun2里面写global a会报错欸 翁坤1125 发表于 2020-4-20 16:12
咳咳,不好意思啊
重点是有一个全局变量a
然后有一个函数fun1
请把代码贴出来。
若有全局变量a的话,在函数内用global a应该是不会报错的,估计错误原因不在这里 sunrise085 发表于 2020-4-20 16:20
请把代码贴出来。
若有全局变量a的话,在函数内用global a应该是不会报错的,估计错误原因不在这里
啊对不起是我错了,
我global了两个全局变量,然后有一个打错字了
把l打成了1(字体问题)
{:10_262:}
页:
[1]