鱼C论坛

 找回密码
 立即注册
查看: 907|回复: 3

[已解决]这个代码怎么看啊

[复制链接]
发表于 2018-5-14 23:42:45 | 显示全部楼层 |阅读模式

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

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

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())
最佳答案
2018-5-15 09:05:34
hi 步骤如下:

1. print(fun1()) , 调用函数fun1(),因为 var是全局变量(var被重新赋值为' Baby ' ),返回fun2(' Baby')
2. 调用 fun2(' Baby');var += 'I love you'  var被重新赋值为' Baby  I love you' ,调用fun3(var) 因为fun3()中的var为局部变量,因此对fun2()不会造成影响,最后通过return()语句返回 ' Baby  I love you'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-5-15 08:49:32 | 显示全部楼层
fun1()---->即fun2('Baby ')---->函数内部操作后var变为‘Baby I love you’,即是输出。
这里主要是fun2()内部的调用fun3(var),这里只是把fun2内的var的值传给fun3()的参数,不管fun3()内部怎么运行,都不会改变fun2内的var值。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-15 09:00:38 | 显示全部楼层
考察的是变量的作用域
1 如果在外面进行了全局定义,那么整个文件都有效
2 当一个变量在函数体内定义的时候,其只在函数体内有效
3 如果在函数内部定义的变量,前面被global声明,那么就是全局的

最后就是你依次调用函数即可明白代码逻辑
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-15 09:05:34 | 显示全部楼层    本楼为最佳答案   
hi 步骤如下:

1. print(fun1()) , 调用函数fun1(),因为 var是全局变量(var被重新赋值为' Baby ' ),返回fun2(' Baby')
2. 调用 fun2(' Baby');var += 'I love you'  var被重新赋值为' Baby  I love you' ,调用fun3(var) 因为fun3()中的var为局部变量,因此对fun2()不会造成影响,最后通过return()语句返回 ' Baby  I love you'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-17 13:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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