在python中返回函数的值
发布时间:2020-12-20 11:04:52 所属栏目:Python 来源:网络整理
导读:为什么我必须在else的情况下返回函数?我不能只应用定义的函数,因为我只需要返回b的值并存储它吗? def gcd_a(a,b): if a==0: return b else: gcd_a(b%a,a) 解决方法 我认为您缺少的主要概念是,为了获得递归函数(或任何函数)的结果,您访问结果的函数必须返回
为什么我必须在else的情况下返回函数?我不能只应用定义的函数,因为我只需要返回b的值并存储它吗?
def gcd_a(a,b): if a==0: return b else: gcd_a(b%a,a) 解决方法
我认为您缺少的主要概念是,为了获得递归函数(或任何函数)的结果,您访问结果的函数必须返回值*
现在,当你调用gcd_a时,对gcd_a的递归调用最终会返回一个值,但是它会丢失,因为你访问结果的函数没有返回值. 为了向您展示这是真的,让我们添加一个日志语句,在函数返回时打印: def gcd_a(a,b): if a==0: print('finally returning!',b) return b else: gcd_a(b%a,a) 现在如果我们打电话: print(gcd_a(10,99)) 我们得到以下输出: finally returning! 1 None 在某个地方,对gcd_a的递归调用发现你的条件为True,并返回1,但是,这个结果没有打印,因为你的gcd_a调用不会返回 *除非你做一些奇怪的事情,比如更新全局变量等等…… (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |