python 遞迴返回None 解決

2021-08-20 11:29:53 字數 1154 閱讀 9167

今天寫了乙個遞迴 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...