propias - llamar funciones dentro de funciones python
Obtención de la lista de nombres de parámetros dentro de la función python (4)
Posible duplicado:
Obtención de nombres de parámetros de método en python
¿Hay una manera fácil de estar dentro de una función de python y obtener una lista de los nombres de los parámetros?
Por ejemplo:
def func(a,b,c):
print magic_that_does_what_I_want()
>>> func()
[''a'',''b'',''c'']
Gracias
Bueno, en realidad no necesitamos inspect
aquí.
>>> func = lambda x, y: (x, y)
>>>
>>> func.__code__.co_argcount
2
>>> func.__code__.co_varnames
(''x'', ''y'')
>>>
>>> def func2(x,y=3):
... print(func2.__code__.co_varnames)
... pass # Other things
...
>>> func2(3,3)
(''x'', ''y'')
>>>
>>> func2.__defaults__
(3,)
Para Python 2.5 y func_code
anteriores, use func_code
lugar de __code__
, y func_defaults
lugar de __defaults__
.
Si también desea los valores puede utilizar el módulo de inspect
import inspect
def func(a, b, c):
frame = inspect.currentframe()
args, _, _, values = inspect.getargvalues(frame)
print ''function name "%s"'' % inspect.getframeinfo(frame)[2]
for i in args:
print " %s = %s" % (i, values[i])
return [(i, values[i]) for i in args]
>>> func(1, 2, 3)
function name "func"
a = 1
b = 2
c = 3
[(''a'', 1), (''b'', 2), (''c'', 3)]
import inspect
def func(a,b,c=5):
pass
inspect.getargspec(func) # inspect.signature(func) in Python 3
([''a'', ''b'', ''c''], None, None, (5,))