对类方法的递归调用在第一次调用时不返回值 - 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)
returnself.get_value(k)

最新更新