def 区域变量和全局变量的问题
def fun(var):var = 1314
print(var,end= '')
var = 520
fun(var)
print(var)
输出结果是 1314520 ,怎么得来的? https://fishc.com.cn/forum.php?mod=viewthread&tid=191839&highlight=1314520
因为先在全局空间定义了一个全局变量 var = 520
此时你调用定义的函数 func ,而 func 内对 var 进行重新赋值,会触发 Python 的屏蔽机制
暂时屏蔽 全局变量 var = 520 的值,在创建个局部变量 var 来接收此时的 1314 ,所以在函数此时调用 print 函数打印了 1314
出了函数后,局部变量 var 就被回收,而变回全局变量 var = 520 ,所以此时 print 打印了 var为 520
因为前者的 print 函数有 end 参数设置为空字符,所以之前的 1314 打印没有换行,则 520 在和 1314 同行出现
Twilight6 发表于 2021-6-6 15:11
因为先在全局空间定义了一个全局变量 var = 520
此时你调用定义的函数 func ,而 func 内对 var 进行 ...
多谢斑竹,很详细 sc-tbm 发表于 2021-6-6 16:10
多谢斑竹,很详细
https://xxx.ilovefishc.com/forum/202005/27/132745rjvcvw1z2148jthd.gif
页:
[1]