![](/img/trans.png)
[英]Is there a way to use variable from outer function in the inner function body, in Python?
[英]How to use returned result from inner function as a parameter in the outer function?
我有一个关于如何使用内部 function 的返回结果作为外部 function 中的参数的问题。
我尝试了以下代码,但结果不是我所期望的:
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
。
我想知道我做错了什么以及如何使用inner_result
作为outer_function
中的参数?
当您在第 5 行返回 inner_function 时。 function 结束,因此第 6 行和第 7 行没有被执行。
outer_function
(像所有函数一样)只能返回一个值,但您试图返回inner_function
和outer_result
。 第一次return
结束 function,导致错误行为。
如果您不想将outer_result
计算合并到inner_function
(我会这样做),您可以将其包装在另一个执行计算的function 中。 这可以通过lambda
或另一个完整的def
来完成:
def outer_function(a,b):
def inner_function(c):
inner_result = c * 100
return inner_result
return lambda c: a * b * inner_function(c)
或者
def outer_function(a,b):
def inner_function(c):
inner_result = c * 100
return inner_result
def second_inner_function(d):
return a * b * inner_function(d)
return second_inner_function
虽然, a * b *
计算很可能只是添加到inner_function
,除非出于概念上的原因,您真的想将其分开。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.