我有一个带有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)