Python:发现可接受的关键字参数



在许多软件包文档中,你可以从matplotlib中读到类似下面的内容:

fig.colorbar(mappable, cax=None, ax=None, use_gridspec=True, **kw)

怎么知道**kw的其他可能性是什么? 一些文档描述了它们,而另一些则没有。

如果没有文档或查看代码,就无法找到它们。**kwargs是一个字典,因此在源代码中使用编辑器(Ctrl + F(搜索kwargs[应该会显示所有使用keys,然后您可以按名称计算用法以及它们在代码中的使用方式,但大多数时候名称本身就是自我记录的。

没有办法直接找到它们,因为编译器不跟踪它们,对于编译器来说,它只是传递字典的一种奇特方式,如果你传递任何意外kwargs,程序不会失败

直接你不能,但你可能会猜到**kargs键,这些键已经在函数中使用过。

def func(**kargs):
c1 = kargs['key']
c2 = kargs['key2']
kargs[1] = 2
print(func.__code__.co_consts)
<小时 />
[None, 'key', 'key2', 1, 2]

您可以使用它,inspect.getsource

import inspect
# get function body
inspect.getsource(func).split('n')

对于优化的模块、使用cython或用C Python API编写的模块,它可能不起作用。

最新更新