S=5 def f(x):
global s
S=S+X return s
a=10
print(f(a))
为什么是15
您的代码中的s,大小写字母都有。🧐应该全是小写吧。
您的 s = s + x = 5 + a = 5 + 10,当然就是15咯。
您的代码有些小问题,全局变量不要轻易设置,除非您明白自己在做什么,因为很容易造成变量作用域混乱。在本例您的代码中,s是已经在函数体内声明是全局变量,函数内部修改的s就是外面的全局变量s,用不用return s 语句都一样。
@ada 请回答下这个问题
不知道你这个问题是否已经解决, 如果还没有解决的话:如果全局变量没有跟局部变量重名,那么可以在函数体内直接引用全局变量的值(即全局变量做右值);
如果全局变量跟局部变量重名,但是没有显示引用全局变量,那么在函数体内局部变量覆盖全局变量的作用域。
如果想要在函数体内修改全局变量s的值,必须先引用global s,再修改。