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

谢谢

推荐答案

其实我们不需要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__.

Python相关问答推荐

如何获取Django REST框架中序列化器内部的外卡属性?

将行从一个DF添加到另一个DF

根据条件将新值添加到下面的行或下面新创建的行中

Pandas实际上如何对基于自定义的索引(integer和非integer)执行索引

Pandas 有条件轮班操作

标题:如何在Python中使用嵌套饼图可视化分层数据?

Vectorize多个头寸的止盈/止盈回溯测试pythonpandas

使用groupby Pandas的一些操作

如何使用它?

Python解析整数格式说明符的规则?

为什么Django管理页面和我的页面的其他CSS文件和图片都找不到?'

合并帧,但不按合并键排序

与命令行相比,相同的Python代码在Companyter Notebook中运行速度慢20倍

Tkinter菜单自发添加额外项目

如何在Great Table中处理inf和nans

BeautifulSoup-Screper有时运行得很好,很健壮--但有时它失败了::可能这里需要一些更多的异常处理?

什么是一种快速而优雅的方式来转换一个包含一串重复的列,而不对同一个值多次运行转换,

Js的查询结果可以在PC Chrome上显示,但不能在Android Chrome、OPERA和EDGE上显示,而两者都可以在Firefox上运行

数据框,如果值在范围内,则获取范围和

为什么后跟inplace方法的`.rename(Columns={';b';:';b';},Copy=False)`没有更新原始数据帧?