[英]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.