Python中有没有简便方法可查询函数或方法支持的合法**kwargs参数?
快速查询函数/方法合法**kwargs的通用方案
1. 针对你提到的matplotlib类场景(kwargs透传给底层对象)
matplotlib中大部分绘图函数的**kwargs都会直接透传给对应的底层对象,比如plt.xticks()的kwargs全部传递给Text类,这类场景无需联网查文档,本地即可快速获取合法参数:
- 先导入对应底层类,直接打印合法属性列表:
from matplotlib.text import Text # 打印所有可设置的合法属性 print(Text._valid_props) # 如果要找特定类别的参数,直接过滤即可,比如搜字体相关参数 print([prop for prop in Text._valid_props if 'font' in prop])
运行过滤代码后你会直接得到fontsize、fontfamily、fontweight等所有字体相关合法参数,不会出现写错成font_size的问题。
- 如果不知道当前函数的kwargs透传给哪个对象,直接用
help()查本地文档即可:
help(plt.xticks)
输出的文档中会明确标注**kwargs对应Text properties,一眼就能找到透传的目标对象。
2. 通用Python场景查询合法kwargs的方法
所有Python函数/方法的参数都可以通过以下两种本地方法快速查询,无需联网:
- 用
inspect模块的signature查看完整参数定义:
import inspect # 打印函数的完整签名 print(inspect.signature(plt.xticks)) # 自定义类的方法也可使用相同逻辑查询 # print(inspect.signature(你的类.你的方法))
- 如果函数的kwargs是固定可选项,直接打印函数的
__doc__属性查看文档说明:
print(plt.xticks.__doc__)
补充避错技巧
matplotlib的所有配置参数均为全小写连写格式,无下划线分隔,比如fontsize、linewidth、linestyle,如果你写的参数带下划线,可以优先检查是否拼写错误,能减少大部分试错成本。
内容的提问来源于stack exchange,提问作者malachi
相关产品推荐
相关产品推荐

