求大佬帮帮我吧!!!
def fun(var):var = 1314
print(var, end='')
var = 520
fun(var)
print(var)
请问各位大哥们,这个为什么会输出1314520呢?我一开始想的是打印520,求大佬解释 这个就是变量的作用域。
你在fun里面是无法改变var的,只能通过global。
函数里面定义的var是只属于函数的,函数打印完自己的var之后,就退出函数了,
然后你在外面打印了520,结果就是1314520. 本帖最后由 Twilight6 于 2020-5-25 15:30 编辑
小甲鱼老师上课 小伙汁你没认真听讲了
这里函数外部的变量叫全局变量,当函数内部有个和函数外部变量名相同的变量,会启动' 屏蔽 ' 机制
函数内部会临时创建一个局部变量 来覆盖同名的全局变量,屏蔽函数外部的同名变量,一出该函数范围,局部变量就消失了,又变回原来的全局变量的值 一眼看下去还没明白前面几位大哥的意思{:10_250:}
你的代码执行
var = 520
fun(var)
print(var)
>>> fun(var)
1314
而>>> print(var)
520
因为前面定义 fun(var) 时 代码是print(var, end='')
end='' ,所以就连起来了显示了1314520 {:10_250:} 沐羽尘 发表于 2020-5-25 15:37
一眼看下去还没明白前面几位大哥的意思
你的代码执行
噗 对哦 还漏了 end 参数没说...
页:
[1]