簡體   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