python - 获取函数的关键字参数,Python

标签 python function introspection

def thefunction(a=1,b=2,c=3):
    pass

print allkeywordsof(thefunction) #allkeywordsof doesnt exist

这会给出 [a,b,c]

有没有类似allkeywordsof的函数?

我不能改变里面的任何东西,函数

最佳答案

我想你在找inspect.getargspec :

import inspect

def thefunction(a=1,b=2,c=3):
    pass

argspec = inspect.getargspec(thefunction)
print(argspec.args)

产量

['a', 'b', 'c']

如果您的函数同时包含位置参数和关键字参数,那么查找关键字参数的名称会稍微复杂一些,但不会太难:

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

关于python - 获取函数的关键字参数,Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11915032/

相关文章:

python - 使用 sklearn 数字数据集预测数字 - 错误

python - 如果仅使用两个级别,Matplotlib 轮廓剖面线将不起作用

javascript - 将多个参数传递给 React 中的函数

php - fatal error : Call to a member function prepare() on null

ruby-on-rails - 如何找到方法的 Rails 模块路径

python - GtkSourceView 使用 Gobject Introspection 滚动到行 [python]

python - 向 C 添加库

sql-server - 如何从函数返回 varchar 值

java - 由于 getClass() 导致自反调用出错

python - Django 中的图像字段是否需要额外的代码