|
|
发表于 2020-2-5 08:57:29
|
显示全部楼层
首先明确,声明函数def 和调用函数()是分开的。
函数可以随意声明,但只有调用的时候才生效。
第二点就是要说清楚,函数里的变量和全局变量是不一样的,
函数里你有一万个变量,只要函数调用一结束,那些变量就都没了,
只有通过return的方式可以返回。
所以你要注意return这一块。
所以代码第一行实际上是print(func1())
这个时候func1被调用,
- In [5]: var = 'hi'
- ...: def fun1():
- ...: global var
- ...: global var #这句和上面这句的作用是什么
- ...: var = 'Baby'
- ...: return fun2(var)
复制代码
这个时候看func1的函数,global var就是把全局变量也就是外边那个var让函数识别
var首先被赋值为‘hi’
然后又被重新赋值为‘Baby’
然后应该return
这里return 的是一个函数,也就变成了return func2('Baby')
先去执行func2
接下来看func2的函数
- ...: def fun2(var):
- ...: var += 'I Love You'
- ...: fun3(var)
- ...: return var
复制代码
func2(‘Baby’)
再以此类推
var = ‘BabyI Love You’
这里要说清楚一个问题,就是函数有没有return
如果函数有return ,那么可以通过赋值的方式获取函数返回值
不然就像fun3一样
- ...: def fun3(var):
- ...: var = "小甲鱼"
复制代码
没有return 值就不会被传回。
再去执行func2的return
return的值就是‘Baby I Love You’ |
|