获取初始化 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)
但是这不会告诉你很多关于什么a
、b
和c
应该是。我怀疑这里有 XY 问题,所以你应该解释一下你试图用它解决的问题。
在 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)
但是这不会告诉你很多关于什么a
、b
和c
应该是。我怀疑这里有 XY 问题,所以你应该解释一下你试图用它解决的问题。