获取初始化类对象所需的属性列表

时间:2017-12-12 09:54:26

标签: python class attributes initializer

在Python中,有没有办法获取初始化类对象所需的属性列表?

例如我有以下课程:

class MyClass:
  def __init__(self, a, b, c):
    self.a = a
    self.b = b
    self.c = c

我想知道,

['a', 'b', 'c'] # These are required to initialize MyClass instance.

可能借助于

<something>(MyClass)

或者,

MyClass.<something>

讨论从对象获取属性列表。 List attributes of an object 但我想知道,有没有办法获得初始化对象所需的属性列表?

2 个答案:

答案 0 :(得分:1)

您可以使用inspect.getargspecs(YourClass.__init__)

>>> import inspect
>>> class Foo(object):
...     def __init__(self, a, b, c):
...         pass
... 
>>> inspect.getargspec(Foo.__init__)
ArgSpec(args=['self', 'a', 'b', 'c'], varargs=None, keywords=None, defaults=None)

但是这不会告诉您很多关于 abc应该是什么的信息。我怀疑这里存在XY问题,所以你应该解释一下你试图解决的问题。

答案 1 :(得分:0)

当然你可以:

class MyClass:
    def __init__(self, args):
       self.a = args[0]
       if len(args) > 1:
           self.b = args[1]
       if len(args) > 2:
           self.c = args[2]