在许多软件包文档中,你可以从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
编写的模块,它可能不起作用。