在某些功能级别,最终函数返回值的位置是什么?

时间:2015-07-26 18:54:45

标签: python function return python-module

这个问题可能听起来很愚蠢,但这就是我要经历的,我用一些模块编写了一个项目,并编写了一系列函数,因为一个函数调用另一个函数,依此类推,最后的函数是返回结果,一本字典。

当我在第一级调用函数时,一切都适用于最后一个函数,

在最后一个函数中,

通过return result返回None

返回字典时,

打印返回字典效果很好

我有不同的功能,分布在不同的模块上。

# on module 1
def funciton_one(the_user_input):
    # code to process param at 
    # stage 1 if conditions are met
    function_two(parameter,the_user_input)

# on module 2
def function_two(parameter,the_user_input):
    # code to process param at 
    # stage 2 if conditions are met
    function_three(parameter,the_user_input)

# on module 3
def function_three(parameter,the_user_input):
    # code to process param at 
    # stage 3 if conditions are met
    function_four(parameter,the_user_input)

# on module 4
def function_four(parameter,the_user_input):
    # code to process param at 
    # stage 4 if conditions are met
    function_five(parameter,the_user_input)

# on module 5
def function_five(parameter,the_user_input):
    # code to process param at 
    # stage 5 if conditions are met
    function_six(parameter,the_user_input)

# on module 1
def function_six(parameter,the_user_input):
    # code to the process parameter and original parameter 
    # stage 6 if conditions are met
    return result

user_input = 'blahblah'
processed = function_one(user_input)

我在这里做错了什么?

编辑: 它的输入通过所有函数传递(第一个函数的输入是original_parameter),参数是不同级别的处理值。

更新: 很麻烦,重命名变量。 感谢。

3 个答案:

答案 0 :(得分:1)

我认为你想把你的最终输出变成processed?您需要将最终结果返回给每个函数,因此function_six返回function_five,返回function_four等,直到function_one返回{{1}变量。

我稍微更改了您的代码以使其正常工作(processed中没有original_param。下次,请确保您的示例代码在发布之前有效。

function_one

答案 1 :(得分:1)

您希望每个函数都# on module 1 def function_one(parameter): return function_two(parameter,parameter) # on module 2 def function_two(parameter,original_param): return function_three(parameter,original_param) # on module 3 def function_three(parameter,original_param): return function_four(parameter,original_param) # on module 4 def function_four(parameter,original_param): return function_five(parameter,original_param) # on module 5 def function_five(parameter,original_param): return function_six(parameter,original_param) # on module 1 def function_six(parameter,original_param): result = "foobar" return result # returns foobar user_input = 'blahblah' processed = function_one(user_input) print processed # prints foobar 调用下一个函数。

答案 2 :(得分:1)

应该有一个变量来保存您传递给的每个函数中的值/ dict / list。意味着应该像var = function1(...)等等