大珠提子 发表于 2020-3-11 23:44:17

python:求帮解释函数运行顺序,超级超级感谢

本帖最后由 大珠提子 于 2020-3-11 23:51 编辑

刚问过之后发现细节处还是有点不懂: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())
想问下到底是怎样运行的,我真的想不通哎。可以详细一点先进行哪一行结果是什么再进行哪一行吗这样吗?需要这题绕太久了需要傻瓜式解答。
哭了,视频本来看的一知半解。{:5_96:}

ba21 发表于 2020-3-11 23:50:51

var = ' Hi '

def fun1():
    global var
    var = ' Baby '
    return fun2(var)

def fun2(a):
    a += 'I love you'
    fun3(a) # 此处是无用代码
    return a

def fun3(b):
    b = ' 小甲鱼 '

print(fun1())

zltzlt 发表于 2020-3-12 08:05:53

参考:https://fishc.com.cn/thread-158899-1-1.html

qiuyouzhi 发表于 2020-3-12 08:40:46

捋一捋:
首先,定义了一个全局变量var,它的值是' Hi ',这时我们定义
fun1,先global var,但因为它后面对var的操作是赋值,所以说,
Python就认为它是局部变量,不动外面的var
而它的返回值是fun2(带参数),也就是说,fun2也可以操作fun1的变量
再将fun1的变量+=
后调用fun3,这个fun3其实是没有用的,因为它没有传入参数,操作的
变量永远是自己的。
最后返回被操作完后的var(a).

DavidCT 发表于 2020-3-12 12:24:07

比较烧脑

大珠提子 发表于 2020-3-12 13:04:08

qiuyouzhi 发表于 2020-3-12 08:40
捋一捋:
首先,定义了一个全局变量var,它的值是' Hi ',这时我们定义
fun1,先global var,但因为它后面 ...

谢谢!

大珠提子 发表于 2020-3-12 13:04:41

ba21 发表于 2020-3-11 23:50


谢谢
页: [1]
查看完整版本: python:求帮解释函数运行顺序,超级超级感谢