我有一個庫有很多功能。我想要符合基本的方法模式。我希望所有的方法把上下文作爲第一個參數和關鍵字精氨酸,默認爲0使用Python裝飾器來執行標準方法簽名
library_function(context, ..., default=0)
有沒有一種方法,我可以使用Python裝飾把
bobs_function(foo, bar=None)
到
bobs_library_function(context, foo, bar=None, default=0)
這樣做的目的是提供聲明庫函數的簡寫。而不是每次都明確添加上下文和默認值。
你可以再澄清一下嗎?你的'bobs_function'和'bobs_library_function'的例子是爲了定義函數的例子嗎?或者它們是如何被調用的?如果它是如何被調用的,你期望'context'變量來自哪裏?也就是說,如果你將'bobs_function(foo,bar = None)'作爲一個函數調用,那麼「正確」解決方案應該在哪裏尋找找到作爲第一個參數插入的'context'的東西? – BrenBarn 2014-12-05 02:53:09
我們的目標是能夠創建一個用於聲明測試需要上下文和默認的簡寫。但是你必須明確聲明函數將上下文作爲輸入,或者我必須使用* args,** kwargs作爲參數,但是將* args和** kwargs作爲輸入比手動輸入上下文更麻煩,默認= 0 – 2014-12-05 07:33:00