eightHundreds
11/9/2016 - 12:52 PM

获得函数所有参数名

获得函数所有参数名

def method(a=1,b=2):
    print (locals())
#{'b':2.'a':1}, 
#这个是获得当前方法中所有的变量,如果只为了获得参数,那么就别创建新变量
#就把他放到函数第一行,注意他会包含self

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)]