鱼C论坛

 找回密码
 立即注册
查看: 1846|回复: 2

[已解决]全局变量问题

[复制链接]
发表于 2016-4-1 11:22:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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())

这段代码 为什么 打印出来的是  baby  i love  you???
最佳答案
2016-4-1 14:33:49
global是一个标记,告诉python运行环境,用外面的var,而不是新建一个标签。
fun3是打酱油的,没有返回任何值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-4-1 13:17:59 | 显示全部楼层
在fun1()函数里面,global var所以这个var变成了全局变量,
所以全局变量var的值经过 var = ' Baby ',编程了Baby,
接下来fun2(var),将var的值传入了fun2(),这时要注意虽然变量名也叫var,但这个var的作用域只在fun2()内
然后执行var += 'I love you',var变成了baby  i love  you
后面虽然又把var传入了fun3(),但是fun3中的var的作用域也只在fun3中,不影响全局变量的值
所以最后fun2返回的还是baby  i love  you
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2016-4-1 14:33:49 | 显示全部楼层    本楼为最佳答案   
global是一个标记,告诉python运行环境,用外面的var,而不是新建一个标签。
fun3是打酱油的,没有返回任何值

评分

参与人数 1荣誉 +3 鱼币 +5 收起 理由
~风介~ + 3 + 5 感谢楼主无私奉献!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 03:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表