Python中的递归Staticmethod返回问题

时间:2017-10-24 00:08:38

标签: python json dictionary recursion static-methods

我只是在经过长时间的休息后回到Python。我在2. * Python中运行此代码,但使用的是print()语法。不要认为这应该是一个问题。

我不明白,虽然函数中的最后一个print语句返回正确答案,但“return”实际上不起作用并返回None / NoneType。这是我在Python中的递归或静态方法的递归吗?谢谢。下面的代码示例。

import json

class DictHelper:
    @staticmethod
    def get_info2(data, *args):
        k = args[0]
        print(data)
        if (len(args) > 1): 
            try:
                ndata = data[k]
                a = list(args)
                a.pop(0)
                DictHelper.get_info2(ndata, *tuple(a))
            except:
                print("Error with key = " + args[0])
        else:
            print("the value for data[" + k + "] is ")
            print(data[k]) # this works
            return data[k]

def demo():
    json_str = """{ "Payload": { "humidity": { "sensor-part-number": "X12345" }}}"""
    data = json.loads(json_str)
    v = DictHelper.get_info2(data, 'Payload', "humidity", "sensor-part-number")
    print(v) # this returns None

demo()

0 个答案:

没有答案