返回之路
走进工匠台后,Hoppy 先碰到的不是更大的机器,而是一条还没完全点亮的小路。每次试灯时,它都能在函数里面算出亮度,可是数字只是在里面闪一下,外面的代码却接不住这份成果。
这就是 return 要解决的小问题:函数不只是把结果秀给你看,它还可以把结果交回调用者,让外面的代码继续拿着它往下做事。
print() 会展示,return 会交回
如果你在函数里用 print(),你只是让人看见了一个结果。可一旦函数结束,这个结果不会自动跑到外面给下一步代码使用。return 不一样:它会把结果真正送回调用位置。
glow_dust = 2
moss_drops = 4
bonus_light = 1
def brew_path_light(glow_dust, moss_drops):
total_light = glow_dust + moss_drops
return total_light
path_light = brew_path_light(glow_dust, moss_drops)
brighter_path_light = path_light + bonus_light
print("Path light:", path_light)
print("Brighter path light:", brighter_path_light)
上面这段代码里,brew_path_light() 先算出一份亮度,再用 return 把它送出来。于是外面的 path_light 可以把它接住,然后 brighter_path_light 还能继续在这个基础上加上额外亮度。
把返回值接住,下一步才真正开始
这节课最想让你记住的一句直觉是:print() 更像“展示给人看”,而 return 更像“交给外面的代码继续用”。所以今天不只要写出 return,还要把返回值接进变量里,再做下一步计算。
starter 里的 brew_path_light() 已经算出了 total_light。你要做的,是别再只把它打印出来,而是用 return total_light 把结果交回去。
用 path_light = brew_path_light(glow_dust, moss_drops) 接住这份亮度。这样调用结束后,外面的代码也拿到了结果。
用 path_light 和 bonus_light 算出 brighter_path_light。这一步就是今天最关键的证明:函数返回的结果,真的能被后面的代码继续使用。
print() 是“让我看见”。return 是“把结果交回来”。如果你还想在函数外继续使用这个结果,就要优先想到 return。
参考答案点击展开点击收起
glow_dust = 7
moss_drops = 5
bonus_light = 3
def brew_path_light(glow_dust, moss_drops):
total_light = glow_dust + moss_drops
return total_light
path_light = brew_path_light(glow_dust, moss_drops)
brighter_path_light = path_light + bonus_light
print("Path light:", path_light)
print("Brighter path light:", brighter_path_light)高级技巧想更进一步?点击展开点击收起
今天先把最基础也最关键的一步打透:一个函数可以把一个结果交回给调用者。只要你把它接进变量里,这个结果就不再只是“闪一下就过去”的输出,而会变成后续代码真的能拿来工作的材料。
下一课你会看到:有时候一个小任务不只会交回一个结果,而会一起带回两份彼此相关的小产物。但今天先守住这一条返回之路,就够了。