Python 获取函数参数的默认值

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属性。通过这些方法,我们可以方便地获取和处理函数参数的默认值。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程