有人可以解釋爲什麼,當我多次調用這個函數時,默認情況下L從來沒有設置爲空?但是,任何後續調用的結果是L追加到前面調用的所有結果?爲什麼在函數被多次調用時爲Python 3函數設置的默認值會被覆蓋?
該功能將數據分離成7天塊,與所述最後日期開始([:: - 1]), 計算每7天平均值和追加的結果作爲值 列表。忽略不完整的塊
數據的默認值是序號格式的日期列表。
def separate(data = [i for i in w][::-1],L = []):
print("separate has been called, data is %s and L is %s" % (data, L))
if len(data)<7:
return L
total = 0
dates = 0
for value in data[:7]:
if w[value] != "None":
total += float(w[value])
dates += 1
L.append(total/dates)
return separate(data[7:], L)
我覺得它有什麼要直接添加更改列表值,但L的定義只應該在函數的範圍內,對不對? – Anon
w是什麼?有什麼改變嗎? –
w是指向包含日期的配置文件中的某個節的變量。默認數據值是所有這些數據顛倒的列表理解。但是數據的價值保持不變,這似乎是L的價值。 – Anon