在Python中,可以使用inspect模块来获取函数的参数列表。inspect模块提供了一些用于检查源代码的函数和类,其中包括获取函数参数信息的功能。
下面是按名称和值获取参数列表的示例代码:
import inspect
def get_params(func):
sig = inspect.signature(func)
params = sig.parameters
param_list = []
for name, param in params.items():
param_info = {
'name': name,
'default': param.default,
'annotation': param.annotation
}
param_list.append(param_info)
return param_list
def example_func(a, b=10, c='hello'):
pass
params = get_params(example_func)
for param in params:
print(f"Parameter name: {param['name']}")
print(f"Default value: {param['default']}")
print(f"Annotation: {param['annotation']}")
print()
运行以上代码,将输出以下结果:
Parameter name: a
Default value: <class 'inspect._empty'>
Annotation: <class 'inspect._empty'>
Parameter name: b
Default value: 10
Annotation: <class 'inspect._empty'>
Parameter name: c
Default value: 'hello'
Annotation: <class 'inspect._empty'>
以上代码中,get_params
函数使用inspect.signature
获取函数的参数签名,然后遍历参数列表,将参数的名称、默认值和注解存储在字典中,并将字典添加到参数列表中。最后,返回参数列表。
在示例函数example_func
中,参数a
没有默认值和注解,参数b
有默认值10
,参数c
有默认值'hello'
。在输出结果中,可以看到每个参数的名称、默认值和注解。
请注意,以上代码仅适用于普通函数,对于类方法、静态方法或使用*args
和**kwargs
的函数可能需要进行适当的修改。
对于腾讯云相关产品和产品介绍链接地址,由于要求不能提及具体品牌商,无法提供相关链接。但可以根据需要在腾讯云官方网站上搜索相关产品和文档。
领取专属 10元无门槛券
手把手带您无忧上云