|
发表于 2023-1-5 06:15:09
|
显示全部楼层
def Fun1():
# 第二步 定义变量
# 需要注意的是,这个x只能在 Fun1 这个函数内部使用
x = 5
# 第三步 定义函数
# 这里只定义函数 不执行
# 目前为止 Fun2 只能在 Fun1 内部进行过调用
# 因为 Fun2 的作用域只在 Fun1的内部
def Fun2():
# 第五步 执行 函数Fun2 这个函数的代码
# nonloccal 声明 x 可以在 Fun2 这个函数内使用
nonlocal x
# 5 * 5 = 25
x *= x
# 将 x 的值 作为Fun2 这个函数的返回值返回
# 哪里调用了 Fun2 哪里就能接收到这个返回值
return x # 在这里可以理解为 return 25
# 到这里第五步结束 将结果 给第四步的 那个return
# 第四步 返回 Fun2 这个函数的运行结果
# 这时候也是调用函数的时候。
# 函数名 + () 就代表调用函数
return Fun2() # 这里调用了 Fun2 所以这里能接收到Fun2 的返回值
# 只有第五步完成,第四步才会结束。第四步结束才能把返回值给第一步的 f
# 这里也可以理解为 return 25 到这里第四步运行结束
# 将返回值 25 给 第一步的 f
# 第一步 调用 Fun1 函数 拿到这个函数的返回值
# 只有第四步运行结束,才能拿到返回值
f = Fun1()
# 打印结果 25
print(f)
# 补充一个知识点
# 函数名后面加括号就是在调用函数,以后看到 func() 这样的写法,不用考虑一定是调用了函数
# 你一直说Fun2 这个函数没有被调用,实际上在第二个return的地方就已经被调用了。
|
|