zsc123xyz147 发表于 2021-3-25 11:26:32

课后作业

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())
请教各位大佬,这一段代码最终为什么没有输出小甲鱼 ?
我的理解是,调用fun1这个函数,会renturn fun2(baby);这样就等于是调用fun2(baby),而调用fun2(baby),第一步var = var + 'i love you',此时var变成了baby ilove you ,第二步fun3(var),最后第三步return var。那这边岂不是有两个var,一个等于baby ilove you ,一个等于小甲鱼。

wp231957 发表于 2021-3-25 11:27:56

因为fun3.这个函数在本题中,就是一个打酱油的
啥用都没有

zsc123xyz147 发表于 2021-3-25 14:11:53

wp231957 发表于 2021-3-25 11:27
因为fun3.这个函数在本题中,就是一个打酱油的
啥用都没有

那请问怎么判断这个fun3会不会起作用呢{:10_254:}

画个圈圈XZQ 发表于 2021-3-25 16:24:41

zsc123xyz147 发表于 2021-3-25 14:11
那请问怎么判断这个fun3会不会起作用呢

因为fun3没有返回值,return后面的就是函数的返回值,返回值就是函数的执行结果,fun3在fun2中只是走了个过程.

zsc123xyz147 发表于 2021-3-25 19:16:52

画个圈圈XZQ 发表于 2021-3-25 16:24
因为fun3没有返回值,return后面的就是函数的返回值,返回值就是函数的执行结果,fun3在fun2中只是走了个过 ...

def fun2():
        def fun3():
                var1 = ' 小甲鱼 '
                return var1
        fun3()
那像这样创建一个函数,我在调用fun2()时,什么都没有出来,就是因为少了return是么
       

画个圈圈XZQ 发表于 2021-3-25 21:49:48

对,调用fun2(),虽然执行了fun3(),但是并没有返回 fun3() 这个值,要在fun3()前面加return才行,小甲鱼下面的return属于fun3()

zsc123xyz147 发表于 2021-3-26 08:43:33

画个圈圈XZQ 发表于 2021-3-25 21:49
对,调用fun2(),虽然执行了fun3(),但是并没有返回 fun3() 这个值,要在fun3()前面加return才行,小甲鱼下面的r ...

明白了,感谢大佬
页: [1]
查看完整版本: 课后作业