Get Keyword Arguments for Function, Python
1 2 3 4 | def thefunction(a=1,b=2,c=3): pass print allkeywordsof(thefunction) #allkeywordsof doesnt exist |
会给[a,b,c]
是否有像allkeywordsof这样的功能?
我不能改变里面的任何东西,
我想你正在寻找inspect.getargspec:
1 2 3 4 5 6 7 | import inspect def thefunction(a=1,b=2,c=3): pass argspec = inspect.getargspec(thefunction) print(argspec.args) |
产量
1 | ['a', 'b', 'c'] |
如果你的函数包含位置和关键字参数,那么找到关键字参数的名称有点复杂,但不是太难:
1 2 3 4 5 6 7 8 9 10 11 12 13 | def thefunction(pos1, pos2, a=1,b=2,c=3, *args, **kwargs): pass argspec = inspect.getargspec(thefunction) print(argspec) # ArgSpec(args=['pos1', 'pos2', 'a', 'b', 'c'], varargs='args', keywords='kwargs', defaults=(1, 2, 3)) print(argspec.args) # ['pos1', 'pos2', 'a', 'b', 'c'] print(argspec.args[-len(argspec.defaults):]) # ['a', 'b', 'c'] |
您可以执行以下操作以获得您正在寻找的内容。
1 2 3 4 5 6 7 8 | >>> >>> def funct(a=1,b=2,c=3): ... pass ... >>> import inspect >>> inspect.getargspec(funct)[0] ['a', 'b', 'c'] >>> |
你想要这样的东西:
1 2 3 4 5 | >>> def func(x,y,z,a=1,b=2,c=3): pass >>> func.func_code.co_varnames[-len(func.func_defaults):] ('a', 'b', 'c') |