我有一个关于如何使用内部函数的返回结果作为外部函数的参数的问题。
我尝试了以下代码,但结果不是我所期望的:
def outer_function(a,b):
def inner_function(c):
inner_result = c * 100
return inner_result
return inner_function
outer_result = a * b * inner_result
return outer_result
some_func = outer_function(10,9)
some_func(9)
我期望some_func(9)
的结果是9 * 100 * 10 * 9 = 81000
;结果是900
。
我想知道我做错了什么,以及如何在outer_function
中使用inner_result
作为参数?
3条答案
按热度按时间u5rb5r591#
当您在第5行返回inner_function时。函数结束了,所以第6行和第7行没有被执行。
qyuhtwio2#
outer_function
(像所有函数一样)只能返回一个值,但您试图同时返回inner_function
和outer_result
。第一个return
结束函数,导致错误行为。如果您不想将
outer_result
计算合并到inner_function
中(我会这样做),您可以将其 Package 在执行计算的另一个函数中。这可以通过lambda
或另一个完整的def
来完成:或
尽管如此,
a * b *
计算很可能只是添加到inner_function
中,除非出于概念上的原因,您确实希望将其分开。lzfw57am3#
我给你一个简单的方法,在代码中做了一些小的调整:
我希望你现在能很容易地理解它。