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

Get list of attributes required to initialize an object of a class

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

例如我有以下 class:

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 但我想知道,有什么方法可以获取初始化对象所需的属性列表吗?

当然可以:

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]

您可以使用 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 问题,所以你应该解释一下你试图用它解决的问题。