[英]Output gets erased in a recursive function
我基本上已經在python down中創建了此遞歸函數,該函數在下面計算從另一個節點到達另一個節點的功率,並基於該節點的覆蓋半徑進行查找。
我想要做的是從此函數中獲取輸出,並對其再次調用遞歸函數,而不會丟失我得到的輸出,我也不知道該怎么做。
這是下面的功能:
def find_new_int(node_in_ex, old_inters):
global Power_Sensitivity
global copy_of_int_list
intersection_list_method = []
for wall_coordinates in lines:
if intersection_rand_point(wall_coordinates[0], wall_coordinates[1], node_in_ex-1, old_inters) is not False:
intersection_list_method.append(intersection_rand_point(wall_coordinates[0], wall_coordinates[1], node_in_ex-1, old_inters))
intersection_list_method = sorted(list(itertools.chain(*intersection_list_method)), key=cal_distance_av)
for points in intersection_list_method:
if cal_pow_rec_plndwall(node_in_ex, points) > Power_Sensitivity:
return intersection_list_method
for points in intersection_list_method:
return find_new_int(node_in_ex, points)
我想循環使用我第一次運行函數>> IF <<時輸出的intersection_list_method,該函數沒有從底部開始的第三行返回交集_list_method。 我在這里做什么的問題是當我打電話時
find_new_int(node_in_ex, points)
再次刪除我正在循環的交集列表_方法,並創建一個新的交集,但是我想在該列表中的每個點上循環,並查看函數是否會為交集_列表_方法中的每個點返回該列表,直到結束
有什么幫助嗎?
您的代碼執行此操作:
for points in intersection_list_method:
return find_new_int(node_in_ex, points)
但是您想要的是:
但是,如果它在THAT列表中沒有找到功率>功率靈敏度的點,我希望它再次在該列表的每個點上再次調用相同的函數,直到它返回某些值。
假設“ returns something”的反義詞是“ returns None
”,則如下所示:
for points in intersection_list_method:
result = find_new_int(node_in_ex, points)
if result is not None:
return result
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.