首页 > 解决方案 > 返回后功能未结束

问题描述

我有以下函数我无法弄清楚,为什么当条件depth > 0不再满足时它不会在返回后停止:

depth = 5

def traverse(target, depth):
    try:
        result = callAddress(target)
        inner_transaction_targets = analyseTransaction(result)
        traversed_addresses = compileAddresses(compiled_receiver_addresses, inner_transaction_targets)
        if depth > 0:
            for inner in inner_transaction_targets:
                traverse(inner, depth - 1)
                print('Starting analysis of child address {} at depth {}.'.format(inner, max_depth))
        else:
            return traversed_addresses 
    except:
        print('Could not traverse.')

一旦深度达到 0,脚本就跳转到

else:
    return traversed_addresses 

但是从那里,它不会停止执行,而是跳转到

print('Starting analysis of child address {} at depth {}.'.format(inner,max_depth))

并添加 +1depth并重新开始for inner in inner_transaction_targets循环。我在脚本中找不到指定此行为的位置。

标签: pythonrecursion

解决方案


推荐阅读