繁体   English   中英

如何使用内部 function 的返回结果作为外部 function 的参数?

[英]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_functionouter_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM