2016-04-22 26 views

回答

0

您可以使用inspect模塊。在3.3+,這很容易通過使用inspect.signature

import inspect 

def foo(bar=None, baz=None): 
    pass 

>>> print(inspect.signature(foo)) 
(bar=None, baz=None) 

立即鏈接的文檔下面是一個example是翻出只的,只有關鍵字參數的名稱,這可能是值得一讀呢!

當然,如果您想深入檢查源代碼以嘗試找到任何從**kwargs參數中拉出的內容,那麼您可能運氣不佳。例如:

def foo(**kwargs): 
    if kwargs.get("isawesome"): 
     print("Dang you're awesome") 

>>> some_magic(foo) 
isawesome 

可能會很難找到。

+1

還要注意,這不適用於用C編寫的所有內置函數,它們通常都沒有命名參數:例如,嘗試「檢查.signature(sum)',你會得到一個錯誤。 – alexis

+0

好點!我不知道是否有任何方法檢查未用Python編寫的函數的簽名。 –

相關問題