爲了記錄目的,我嘗試自動捕獲傳遞給函數內部函數的參數並將它們轉換爲arg : value
的字典。 我試過inspect.signature()
模塊,但它僅與函數的默認輸入,而不是參數傳遞給它如何在字典中捕捉函數的輸入參數
import inspect
def my_add_func(a, b ,c=3):
sig = inspect.signature(my_add_func)
print("my_add_func args : {0}".format(sig))
return a + b + c
if __name__ == '__main__':
my_add_func(10, 2, 3)
輸出提供:
(a, b, c=3)
而我想有:
{a: 10, b: 2, c:3}
我該怎麼做?
按預期工作謝謝,我只是按照@Yuval Ben Ari的建議添加'apply_default()'。另外我發現''locals()'更容易使用。它適合我的情況,因爲我只想在函數的開頭就抓住參數。 – MCMZL
@MCMZL如果你這樣做,直接在函數中檢查你不需要'apply_default()',只有當你試圖從外部檢查一個函數時纔有意思。 – MSeifert
@MCMZL我很高興它的工作,請不要忘記[接受](https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)最有幫助的答案:) – MSeifert