欢迎访问宙启技术站
智能推送

Python 函数参数的默认值与关键字传参

发布时间:2023-06-14 22:21:52

Python 函数参数的默认值与关键字传参

在 Python 中,我们可以通过传递参数来使函数完成特定的操作。函数的参数可以带有默认值,也可以使用关键字参数来传递参数。本文将介绍 Python 函数参数的默认值和关键字传参。

1. 函数参数的默认值

在 Python 中,函数参数可以设置默认值。这意味着在调用函数时,如果用户没有提供相应的参数,则使用默认值。函数定义时使用等号(=)来指定默认参数值。

以下是一个函数示例,该函数使用默认参数值:

def print_info(name, age=20, sex='male'):
    print(f'Name: {name}, Age: {age}, Sex: {sex}')

# 没有提供 age 和 sex 参数,默认值会被使用
print_info('Tom')

# 提供了 age 和 sex 参数,覆盖了默认值
print_info('Lily', age=22, sex='female')

输出:

Name: Tom, Age: 20, Sex: male
Name: Lily, Age: 22, Sex: female

在上面的示例中,当未提供 age 和 sex 参数时,将使用默认值。在第二个函数调用中,提供了 age 和 sex 参数,这将覆盖默认值。

对于带有默认值的参数,我们建议将它们放在参数列表的末尾,这样我们就可以省略任何中间参数,但是需要在调用函数时在中间参数前面放置占位符。

def print_info(name, sex='male', age):
    print(f'Name: {name}, Age: {age}, Sex: {sex}')

# 错误示例,语法错误
print_info('Tom', 20)

# 正确示例,占位符被添加到 sex 参数前
print_info('Lily', age=22, sex='female')

输出:

SyntaxError: non-default argument follows default argument
Name: Lily, Age: 22, Sex: female

2. 关键字传参

在 Python 中,我们可以使用关键字参数传递参数。关键字参数也称为命名参数,这是一种指定函数参数的名称和值的方法。

以下是一个函数示例,该函数使用关键字参数:

def print_info(name, age, sex):
    print(f'Name: {name}, Age: {age}, Sex: {sex}')

# 使用关键字参数传递参数
print_info(name='Tom', age=20, sex='male')
print_info(sex='female', name='Lily', age=22)

输出:

Name: Tom, Age: 20, Sex: male
Name: Lily, Age: 22, Sex: female

请注意,关键字参数的顺序是无关紧要的,因为我们使用参数名称来指定参数值。

关键字参数对于具有多个可选参数的函数非常有用。使用关键字参数,我们可以轻松地在函数调用中省略中间的可选参数。

def print_info(name, age = 20, sex = 'male'):
    print(f'Name: {name}, Age: {age}, Sex: {sex}')

# 使用默认值和关键字参数,中间参数被省略
print_info(name='Tom', sex='male')
print_info(name='Lily', age=22)

输出:

Name: Tom, Age: 20, Sex: male
Name: Lily, Age: 22, Sex: male

在上述示例中,我们省略了 age 和 sex 参数的值,因为它们都具有默认值。在第一个调用中,我们省略了 age 参数,但为 sex 参数提供了值。在第二次调用中,我们省略了 sex 参数,但为 age 参数提供了值。

总结

Python 中函数参数的默认值和关键字参数传递是使函数定义更易于理解和使用的功能。通过使用默认参数值和关键字参数传递,我们可以轻松地指定参数的默认值或省略中间参数的值。这使我们能够更快地编写和维护 Python 代码。