Python 获取函数参数的默认值
在本文中,我们将介绍如何使用Python获取函数参数的默认值。Python中的函数可以定义默认参数,也就是指定函数在调用时如果未给定某个参数的值,则使用默认的值。我们可以使用inspect库来获取函数的默认参数。
阅读更多:Python 教程
使用inspect库获取函数默认参数
inspect是Python内置的用于检查模块、类、方法、函数等的模块。我们可以使用inspect库中的signature函数来获取函数的参数列表信息,然后通过parameters属性获取每个参数的默认值。
下面是一个示例函数,其中定义了两个参数,其中b参数设置了默认值为10:
import inspect
def add(a, b=10):
pass
使用inspect.signature函数可以获取函数的参数列表信息:
signature = inspect.signature(add)
parameters = signature.parameters
for name, parameter in parameters.items():
if parameter.default != inspect.Parameter.empty:
print(f"{name}: {parameter.default}")
运行上述代码,输出结果为:
b: 10
我们可以看到b参数的默认值为10。
动态获取函数默认值
除了使用inspect库,我们还可以通过__defaults__属性来获取函数参数的默认值。对于每个参数,可以通过该属性获取默认值。下面是一个示例:
def multiply(a, b=5):
pass
default_values = multiply.__defaults__
for i, arg_value in enumerate(default_values):
print(f"arg{i+1}: {arg_value}")
运行上述代码,输出结果为:
arg2: 5
我们可以看到b参数的默认值为5。
获取函数参数是否设置了默认值
如果我们只是想知道某个参数是否设置了默认值,而不需要获取具体的默认值,可以使用inspect.Parameter类中的default属性。如果该属性的值不等于inspect.Parameter.empty,则表示该参数设置了默认值。下面是一个示例:
def power(base, exp=2):
pass
signature = inspect.signature(power)
parameters = signature.parameters
for name, parameter in parameters.items():
if parameter.default != inspect.Parameter.empty:
print(f"{name} 参数设置了默认值")
运行上述代码,输出结果为:
exp 参数设置了默认值
我们可以看到exp参数设置了默认值。
总结
本文介绍了如何使用Python获取函数参数的默认值。我们可以使用inspect库中的signature函数获取函数的参数列表信息,并使用parameters属性获取每个参数的默认值。另外,我们还可以通过__defaults__属性来动态获取函数参数的默认值。如果只是想知道某个参数是否设置了默认值,可以使用inspect.Parameter类中的default属性。通过这些方法,我们可以方便地获取和处理函数参数的默认值。
极客教程