0
我有一個我想「格式化」的熊貓時間序列,因爲我有一個天偏移量,我只想輸出系列天高於偏移量。事實上,這可以通過一個簡單的代碼行完成:對函數參數進行直接內部更改的修飾器
series = series.iloc[offset:]
但我有很多情況下,這個地方需要做,所以我寧願有更多的東西模塊化。我纔剛剛開始進入裝飾所以我還是我發現他們非常難以把握,但是,我想過寫一個裝飾如下:
def apply_offset(series, days):
def adj(*args, **kwargs):
return series(*args, **kwargs).iloc[days:]
return adj
然後將其應用到一些函數,返回一系列像這樣:
@apply_offset(200)
def ret_series(*args, **kwargs):
# returns a series
所以在上面的例子中,該系列的偏移量爲200天。現在,這在翻譯時到達引發錯誤的裝修,即:
TypeError: apply_offset() missing 1 required positional argument: 'offset'
我在做什麼錯?
This Works,thanks!然而,天將成爲一個整數,所以在技術上它不接受一個函數作爲它的參數,是不是裝飾者應該做什麼?此外,爲什麼你需要兩個嵌套功能,而不只是一個? – jablesauce
@jablesauce請閱讀重複,這解釋了所有這一切。 – jonrsharpe