繁体   English   中英

对类方法的递归调用在第一次调用时不返回值 - Python

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM