鱼C论坛

 找回密码
 立即注册
查看: 2377|回复: 7

19讲的作业,这个逻辑谁能帮我理一理

[复制链接]
发表于 2016-5-17 18:18:57 From FishC Mobile | 显示全部楼层 |阅读模式
10鱼币
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())

最佳答案

查看完整内容

解决了就要修改问题状态,还有。。。。。金币呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-5-17 18:18:58 | 显示全部楼层
解决了就要修改问题状态,还有。。。。。金币呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-5-17 21:05:54 | 显示全部楼层
第一个全局变量的var=hi 在第一个函数中被global关键字修改了,于是var变为了baby,然后调用第二个函数,var=var+'I love you',所有var变为了 baby l love you,然后调用第三个函数,且返回var值,但是第三个函数中var='小甲鱼',属于局部变量,仅在函数内部作用,所以最后返回baby l love you

粗浅的理解,请高手指教
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-5-17 23:21:14 | 显示全部楼层
开始:var得到赋值Hi
fun1:var---->baby,因为return fun2(var),所以下一步进入fun2,这里定义全局变量似乎没有意义
fun2:var---->baby , I love you,此时调用了fun3,但是fun3虽然在内部改变了var,没有返回值,fun3里面的var就是局部变量,是不影响其他的函数的,所以fun2中最后return的var的值就是baby , I love you
最后print,得到的就是baby , I love you
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-5-18 10:23:27 From FishC Mobile | 显示全部楼层
心蓝鹤屏 发表于 2016-5-17 21:05
第一个全局变量的var=hi 在第一个函数中被global关键字修改了,于是var变为了baby,然后调用第二个函数,var ...

我明白了,谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-5-18 10:24:31 From FishC Mobile | 显示全部楼层
vpo1 发表于 2016-5-17 23:21
开始:var得到赋值Hi
fun1:var---->baby,因为return fun2(var),所以下一步进入fun2,这里定义全局变 ...

很详细,谢谢了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-9-7 18:28:19 | 显示全部楼层
vpo1 发表于 2016-5-19 10:19
解决了就要修改问题状态,还有。。。。。金币呢?

鱼币,哈哈
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-9-8 12:40:41 | 显示全部楼层
我路过,也偷学到了!解释的很好!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-21 02:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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