在python函数中获取参数名称列表

新手上路,请多包涵

可能重复:

在python中获取方法参数名称

有没有一种简单的方法可以进入 python 函数并获取参数名称列表?

例如:

 def func(a,b,c):
    print magic_that_does_what_I_want()

>>> func()
['a','b','c']

谢谢

原文由 R S 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 571
2 个回答

好吧,我们实际上并不需要 inspect 这里。

 >>> 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__

原文由 simplyharsh 发布,翻译遵循 CC BY-SA 4.0 许可协议

locals() 返回具有本地名称的字典:

 def func(a, b, c):
    print(locals().keys())

打印参数列表。如果您使用其他局部变量,这些变量将包含在此列表中。但是您可以在函数的开头复制一份。

原文由 unbeknown 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题