Vy.*_*.Iv 5 python oop arguments introspection
什么是在__init__不创建新实例的情况下从中提取参数的方法.代码示例:
class Super:
def __init__(self, name):
self.name = name
Run Code Online (Sandbox Code Playgroud)
我看起来像Super.__dict__.keys()类型解决方案.只是为了检索名称参数信息而不添加任何值.有这样的选择吗?
Bah*_*rom 15
您可以使用 inspect
>>> import inspect
>>> inspect.getargspec(Super.__init__)
ArgSpec(args=['self', 'name'], varargs=None, keywords=None, defaults=None)
>>>
Run Code Online (Sandbox Code Playgroud)
编辑:inspect.getargspec实际上并没有创建实例Super,见下文:
import inspect
class Super:
def __init__(self, name):
print 'instantiated'
self.name = name
print inspect.getargspec(Super.__init__)
Run Code Online (Sandbox Code Playgroud)
这输出:
### Run test.a ###
ArgSpec(args=['self', 'name'], varargs=None, keywords=None, defaults=None)
>>>
Run Code Online (Sandbox Code Playgroud)
请注意,instantiated从未打印过.