2017-04-08 152 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