2024-04-25 19:30:15 发布
网友
Possible Duplicate:Getting method parameter names in python
有没有一种简单的方法可以进入python函数并获取参数名列表?
例如:
def func(a,b,c): print magic_that_does_what_I_want() >>> func() ['a','b','c']
谢谢
^{}返回具有本地名称的字典:
def func(a,b,c): print(locals().keys())
打印参数列表。如果使用其他局部变量,这些变量将包含在此列表中。但你可以在开始你的工作时复印一份。
如果还需要值,可以使用inspect模块
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)]
其实我们不需要这里。
>>> 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,)
对于Python 2.5及更高版本,使用func_code而不是__code__,使用func_defaults而不是__defaults__。
func_code
__code__
func_defaults
__defaults__
^{} 返回具有本地名称的字典:
打印参数列表。如果使用其他局部变量,这些变量将包含在此列表中。但你可以在开始你的工作时复印一份。
如果还需要值,可以使用
inspect
模块其实我们不需要这里。
对于Python 2.5及更高版本,使用
func_code
而不是__code__
,使用func_defaults
而不是__defaults__
。相关问题 更多 >
编程相关推荐