2017-04-08 153 views
0

我想創建一個類的名字的字典駐留在模塊到他們的構造函數參數。如何在python中打印__init__函數參數?

構造函數參數也應該是一個字典,我將存儲任何定義的參數的默認值。

任何線索都會非常有幫助。提前致謝。

提供有關使用情況的詳細信息,我想在這裏做的就是image

我想要得到例如構造函數的參數在圖像中提到的所有類請參考下面的圖片 image

回答

1

如果我理解正確的話,你只是想在你__init__的簽名參數的名稱。

,實際上是用很簡單的inspect module

import inspect 

signature = inspect.getargspec(your_class.__init__) 
signature.args # All arguments explicitly named in the __init__ function 
signature.defaults # Tuple containing all default arguments 
signature.varargs # Name of the parameter that can take *args (or None) 
signature.keywords # Name of the parameter that can take **kwargs (or None) 

您可以將默認參數映射到這樣的相應參數名:

argument_defaults = zip(signature.args[::-1], signature.defaults) 
+0

注意'getargspec'已自3.0棄用。對於2/3 compat代碼,應該使用'getfullargspec',如果只用於現代python,則使用['signature()'](https://docs.python.org/3/library/inspect.html#inspect.signature) 。 –

+0

感謝您的回答。雖然當我嘗試這個代碼,這給了我一些東西:['self'] None args kwargs。但它不打印實際的參數。我可能會錯過這裏的東西。我用更多的細節更新了這個問題來解釋實際的用例。 –

+0

'self''總是「__init__」調用的​​第一個參數。你可以過濾掉它。否則我不明白你的問題。 – RunOrVeith