0

Python で 2 つの再帰関数を作成しました。

最初のものは、パラメーターを受け取り、それらを変更して、値を返します。

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

2 つ目はパラメーターを取り、グローバル変数に対して操作を実行します。

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

これらの関数は完全に機能し、必要な正確な計算を行いますが、常に NoneType を返します。

私は理由を理解することができませんでした。

4

1 に答える 1

12

あなたは何も返していません。関数から値を返すには、常にステートメントを使用してください。returnPython は、関数の最後のステートメントを戻り値として使用しません。

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 に答える