0

我在 python 中编写了两个递归函数。

第一个接受参数,修改它们,然后返回一个值。

def Similarity(string, sstring1, index):
    if condition1:
        return index
    if condition2:
        #do something
    Similarity(string, string1, index)

第二个接受参数并对全局变量执行操作。

def getData(i, value):
    global dataList
    if condition:
        return list(suffixList)
    #do something
    getData(i, value)

这些函数完美地工作并执行我需要的精确计算,但总是返回一个 NoneType。

我一直无法弄清楚为什么。

4

1 回答 1

12

你没有返回任何东西始终使用return语句从函数返回值。Python 不使用函数中的最后一条语句作为返回值。

def getData(i, value):
    global dataList
    if condition:
        return list(suffixList)
    #do something
    return getData(i, value)

一个没有显式退出的函数return,而是返回None

于 2012-12-13T15:46:14.390 回答