使用Python 2.4,我試圖識別,在運行時,哪一個任意函數的參數具有默認值。不幸的是,雖然我可以找到默認值,但似乎無法得到它們對應的參數的句柄。例如:如何在運行時確定給定函數參數的默認值?
def foo(a, b, c=5):
return a + b + c
import inspect
inspect.getargspec(foo) # output is: (['a', 'b', 'c'], None, None, (5,))
的getargspec
輸出是在Python 2.6,它返回一個名爲元組更加清晰:
ArgSpec(args=['a', 'b', 'c'], varargs=None, keywords=None, defaults=(5,))
的Python顯然有足夠的信息,在執行過程中來完成任務。我怎樣才能得到它?
這個元組有什麼問題? – 2010-08-25 17:59:32
元組沒有錯,它只是沒有用元數據來裝飾,這使得它更容易解釋。它們實際上都是元組,但在2.6中,它是一個命名的元組。 – vezult 2010-08-25 18:33:08