我有一种奇怪的行为,我似乎无法识别。我可以尝试这样总结一下:
def custom_function(input_list):
output_sum = 0
for number in input_list:
output_sum += number
return output_sum
tmp_list = [0, 12, 129]
tmp_list2 = [19, 0, 18]
print tmp_list
print custom_function(tmp_list)
print tmp_list2
print custom_function(tmp_list)
在这种情况下,请考虑custom_function
更复杂。我想知道它可能来自哪种东西。如果您需要更多见解,我希望更详细地描述custom_function
。
输出将如下所示,并且脚本将继续运行而不给出任何答案,而custom_function的第一次迭代是瞬时的。
[0, 12, 129]
141
[19, 0, 18]
你们有没有想过这种问题可能来自哪里?当我杀死脚本时,Trace Back总是指示我一个不同的调用,好像最后一个函数只需要2天才能执行。
答案 0 :(得分:1)
您的代码中有印刷错误。第二个打印操作员打印tmp_list2,但要通过tmp_list传递功能。
所以,改变
print custom_function(tmp_list)
到
print custom_function(tmp_list2)
如果要在函数中使用input_list进行任何操作(添加/删除项目),请尝试在input_list [:]的副本上进行“for”循环,而不是input_list本身。所以你的功能应该是这样的:
def custom_function(input_list):
output_sum = 0
for number in input_list[:]:
output_sum += number
return output_sum
它对你当前的函数没有用,因为没有对input_list的内容进行操作,但你已经提到你的实际函数更复杂了。