[英]Recursive call to class method doesn't return value on first call - Python
我有一個帶有 setter/getter 方法的類,但是 getter 方法在我的初始調用中沒有返回值:
import random
class Data:
def __init__(self):
self.data = {}
def set_value(self, k):
self.data[k] = random.random()
def get_value(self, k):
if self.data.get(k) is not None:
return self.data.get(k)
self.set_value(k)
self.get_value(k)
現在,如果我啟動這個類並調用一個像 4 這樣的值,在第一次調用時它會為 4 分配一個值,但如果我在 setter 函數之后調用它,則不會返回它:
d = Data()
d.get_value(4) # returns None
d.data # {4: 0.7578261616519488}
d.get_value(4) # returns 0.7578261616519488
您沒有返回遞歸調用返回的值。
def get_value(self, k):
if self.data.get(k) is not None:
return self.data.get(k)
self.set_value(k)
return self.get_value(k)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.