Finding out which functions are available from a class instance in python?
如何动态地找出哪些函数是从类的实例中定义的?
例如:
1 2 3 4 5 6 7 8 | class A(object): def methodA(self, intA=1): pass def methodB(self, strB): pass a = A() |
理想情况下,我想知道实例"a"有methoda和methodb,它们采用了哪些参数?
看看
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | >>> import inspect >>> inspect.getmembers(a) [('__class__', <class '__main__.A'>), ('__delattr__', <method-wrapper '__delattr__' of A object at 0xb77d48ac>), ('__dict__', {}), ('__doc__', None), ('__getattribute__', <method-wrapper '__getattribute__' of A object at 0xb77d48ac>), ('__hash__', <method-wrapper '__hash__' of A object at 0xb77d48ac>), ('__init__', <method-wrapper '__init__' of A object at 0xb77d48ac>), ('__module__', '__main__'), ('__new__', <built-in method __new__ of type object at 0x8146220>), ('__reduce__', <built-in method __reduce__ of A object at 0xb77d48ac>), ('__reduce_ex__', <built-in method __reduce_ex__ of A object at 0xb77d48ac>), ('__repr__', <method-wrapper '__repr__' of A object at 0xb77d48ac>), ('__setattr__', <method-wrapper '__setattr__' of A object at 0xb77d48ac>), ('__str__', <method-wrapper '__str__' of A object at 0xb77d48ac>), ('__weakref__', None), ('methodA', <bound method A.methodA of <__main__.A object at 0xb77d48ac>>), ('methodB', <bound method A.methodB of <__main__.A object at 0xb77d48ac>>)] >>> inspect.getargspec(a.methodA) (['self', 'intA'], None, None, (1,)) >>> inspect.getargspec(getattr(a, 'methodA')) (['self', 'intA'], None, None, (1,)) >>> print inspect.getargspec.__doc__ Get the names and default values of a function's arguments. A tuple of four things is returned: (args, varargs, varkw, defaults). 'args' is a list of the argument names (it may contain nested lists). 'varargs' and 'varkw' are the names of the * and ** arguments or None. 'defaults' is an n-tuple of the default values of the last n arguments. >>> print inspect.getmembers.__doc__ Return all members of an object as (name, value) pairs sorted by name. Optionally, only return members that satisfy a given predicate. |