如何在python中打印__init__函数参数?

时间:2017-04-08 11:03:13

标签: python-3.x

我正在尝试创建一个驻留在模块中的类名字典到它们的构造函数args。

构造函数args也应该是一个字典,我将在任何地方存储参数的默认值。

任何线索都会非常有用。提前谢谢。

要提供有关用例的更多详细信息,我在这里要做的是针对图像中提到的所有类image

我想获取构造函数参数,例如请参考下图 image

2 个答案:

答案 0 :(得分:3)

如果我理解正确,您只需要__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[::-1])

答案 1 :(得分:0)

最近,有以下作品:

import inspect

signature = inspect.signature(yourclass.__init__)

for param in signature.parameters.values():
    print(param)

(与接受的答案相比)差异是parameters实例变量需要访问。