利用get_args()函数获取函数参数信息的示例代码
发布时间:2024-01-20 06:10:20
Python中的inspect模块提供了一个getargspec(func)函数,它可以获取指定函数的参数信息。然而,getargspec()函数在Python 3.6及更高版本中已被弃用,取而代之的是getfullargspec(func)函数。在这个示例中,我们将展示如何使用getfullargspec()函数来获取函数的参数信息。
示例代码如下:
import inspect
def func(arg1, arg2=10, *args, **kwargs):
pass
# 获取函数参数信息
argspec = inspect.getfullargspec(func)
# 获取位置参数列表
args = argspec.args
# 获取默认参数字典
defaults = argspec.defaults
# 获取可变长位置参数名称
varargs = argspec.varargs
# 获取可变长关键字参数名称
varkwargs = argspec.varkw
# 打印函数参数信息
print("函数参数列表:", args)
print("默认参数字典:", defaults)
print("可变长位置参数名称:", varargs)
print("可变长关键字参数名称:", varkwargs)
上述代码中,我们定义了一个名为func的函数,它包含了多种类型的参数,包括位置参数、默认参数、可变长位置参数和可变长关键字参数。接下来,我们使用getfullargspec()函数来获取函数func的参数信息。
首先,我们通过argspec.args获取函数的位置参数列表,并通过argspec.defaults获取函数的默认参数字典。默认参数字典的键值对分别是参数名和对应的默认值。如果某个参数没有默认值,则对应的值为None。
然后,我们通过argspec.varargs获取函数的可变长位置参数名称。如果函数没有可变长位置参数,则该值为None。
最后,我们通过argspec.varkw获取函数的可变长关键字参数名称。如果函数没有可变长关键字参数,则该值为None。
最后,我们打印出函数的参数信息,包括位置参数列表、默认参数字典、可变长位置参数名称和可变长关键字参数名称。
下面是对上述示例代码的输出结果:
函数参数列表: ['arg1', 'arg2'] 默认参数字典: (10,) 可变长位置参数名称: args 可变长关键字参数名称: kwargs
从输出结果可以看出,函数func的位置参数列表为['arg1', 'arg2'],其中arg2有默认值10。函数还包含可变长位置参数args和可变长关键字参数kwargs。
