मेरे पास सेटर/गेटर विधियों वाला एक वर्ग है, लेकिन गेटर विधि मेरे प्रारंभिक कॉल पर कोई मान नहीं लौटाती है:

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 के लिए मान निर्दिष्ट करता है, लेकिन इसे वापस नहीं करता है, मैं इसे सेटर फ़ंक्शन के बाद कॉल कर रहा हूं:

d = Data()

d.get_value(4) # returns None

d.data # {4: 0.7578261616519488}

d.get_value(4) # returns 0.7578261616519488
0
Mehdi Zare 22 अक्टूबर 2020, 19:52

1 उत्तर

सबसे बढ़िया उत्तर

आपने पुनरावर्ती कॉल द्वारा लौटाया गया मान वापस नहीं दिया।

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)
1
chepner 22 अक्टूबर 2020, 16:56