这个问题可能听起来很愚蠢,但这就是我要经历的,我用一些模块编写了一个项目,并编写了一系列函数,因为一个函数调用另一个函数,依此类推,最后的函数是返回结果,一本字典。
当我在第一级调用函数时,一切都适用于最后一个函数,
在最后一个函数中,
通过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),参数是不同级别的处理值。
更新: 很麻烦,重命名变量。 感谢。
答案 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(...)等等