今天寫了乙個遞迴 return 之前答應出來都是有值的, 呼叫時候返回值都是none ,很是納悶 後來找到原因
現在來看下返回none 的**
def
get_end_parent_ele
(self, obj):
"""獲取這個id 所在的原始類"""
parent_id = obj.parent_id if obj else
0 ohholog.print_log("獲取這個id parent_id")
ohholog.print_log(parent_id)
parent_obj = self.obj_obj.get_by_id(parent_id)
if parent_obj.key == "all":
ohholog.print_log("all")
return_key = obj.key
ohholog.print_log(return_key)
return return_key
else:
self.get_end_parent_ele(parent_obj)
修改將下面的也給返回
def
get_end_parent_ele
(self, obj):
"""獲取這個id 所在的原始類"""
parent_id = obj.parent_id if obj else
0 ohholog.print_log("獲取這個id parent_id")
ohholog.print_log(parent_id)
parent_obj = self.interest.get_by_id(parent_id)
if parent_obj.key == "all":
ohholog.print_log("all")
return_key = obj.key
ohholog.print_log(return_key)
return return_key
else:
return self.get_end_parent_ele(parent_obj)
沒有return的時候資料只能進不能出所以就只能返回none 遞迴返回值為None 解決篇
其實現在看來,當時我獲取返回值總是為空,只是因為自己沒有注意細節問題,不是什麼經典的bug,但是我還是想寫一篇文章記錄一下,因為在當時出現這個bug時,讓我困惑不解,那種感覺記憶猶新 該篇文章的 是我簡化後的 返回有none資料 def funone data one data data 功能1 r...
python遞迴 返回 閉包 函式
函式呼叫函式自身,這種方式稱為遞迴,這種函式稱為遞迴函式 遞迴函式的優點是定義簡單,邏輯清晰,缺點是過深的呼叫會導致棧溢位 遞迴函式使用過程中,需要找到不變的規律和停止遞迴的邊界條件,因為函式自身呼叫自身,函式本身的結構不變,只是每次傳的引數改變啦 遞迴實現過程 擴充套件 利用棧的思想,先找邊界條件...
python如何遞迴返回檔案目錄
在python運維過程中,遞迴返回檔案目錄是最常用的乙個指令碼,遞迴的重要條件是 要有終止條件 執行遞迴函式將反覆呼叫其自身,所以學會如何寫遞迴返回檔案目錄的指令碼很重要,不多說,直接上 import os import sys def print files path lsdir os.listd...