0

ここでシリーズ変数を使用できる理由がわかりません:

def calculate_mean():
    series = []
    def mean(new_value):
        series.append(new_value)    
        total = sum(series)
        return total/len(series)
    return mean

ただし、ここでは count 変数と total 変数を使用できません (代入前に参照される変数)。

def calculate_mean():
    count = 0
    total = 0
    def mean(value):
        count += 1
        total += value
        return total/count
    return mean

次のような非ローカル キーワードを使用する場合にのみ機能します。

def calculate_mean():
    count = 0
    total = 0
    def mean(value):
        nonlocal count, total
        count += 1
        total += value
        return total/count
    return mean

これは私が calculate_mean() を使用する方法です

mean  = calculate_mean()
print(mean(5))
print(mean(6))
print(mean(7))
print(mean(8))
4

1 に答える 1