|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
python教程[课后作业] 第018讲有如下的一个问题:
目测以下程序会打印什么内容?
var = ' Hi '
def fun1():
global var
var = ' Baby '
return fun2(var)
def fun2(var):
var += 'I love you'
fun3(var)
return var
def fun3(var):
var = ' 小甲鱼 '
print(fun1())
我给出的答案是:小甲鱼
分析思路是:
1、其实上面这个程序输出的是第二个函数fun2(var)最终的var。
2、经过 global var,var = ' Baby ' 语句后,var的值为‘baby’
3、经过var += 'I love you' 语句后,var的值为‘baby i love you’.
4、接着fun3(var)这个语句又将var的值从‘baby i love you’.变为‘小甲鱼’
5、因此,fun2最终输出的var是‘小甲鱼’
6、因此程序最终print的东西是‘小甲鱼’
-------------------------
然鹅,正确的答案是‘baby i love you’.
-------------------------
我的问题是,在我分析的第四步中,难道var并没有被fun3改变么?最终为什么fun3对var的赋值没有生效?
谢谢各位大神解答。 |
|