商城首页欢迎来到中国正版软件门户

您的位置:首页 >函数可变参数与默认值使用详解

函数可变参数与默认值使用详解

  发布于2025-10-02 阅读(0)

扫一扫,手机访问

默认参数在定义时计算一次,避免使用可变对象作为默认值,应使用None并在函数内初始化;2. args收集位置参数为元组,kwargs收集关键字参数为字典;3. 参数顺序必须为普通参数、默认参数、args、kwargs,组合使用可提升函数灵活性。

函数可变参数与默认值如何使用

在 Python 中,函数的可变参数和默认值是两个非常实用的功能,能让你写出更灵活、通用的代码。下面直接说明它们的用法和注意事项。

默认参数的使用

给函数参数设置默认值,可以在调用时省略该参数,使用预设的值。

定义方式是在参数名后用 = 赋值。

例如:

def greet(name, greeting="Hello"):
    print(f"{greeting}, {name}!")

greet("Alice") # 输出:Hello, Alice! greet("Bob", "Hi") # 输出:Hi, Bob!

注意:默认值只在函数定义时计算一次,因此不要用可变对象(如列表、字典)作为默认值。

错误示例:

def bad_append(item, lst=[]):  # 不推荐
    lst.append(item)
    return lst

正确做法是使用 None 作为默认值,并在函数内部初始化:

def good_append(item, lst=None):
    if lst is None:
        lst = []
    lst.append(item)
    return lst

可变参数的使用

当不确定传入多少个参数时,可以使用可变参数。Python 提供两种形式:*args**kwargs

*args 收集多余的 positional 参数,变成一个元组。

例如:

def sum_all(*args):
    return sum(args)

print(sum_all(1, 2, 3)) # 输出:6 print(sum_all(10, 20)) # 输出:30

**kwargs 收集多余的 keyword 参数,变成一个字典。

例如:

def print_info(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")

print_info(name="Alice", age=25, city="Beijing")

输出:

name: Alice

age: 25

city: Beijing

组合使用默认值与可变参数

你可以同时使用默认参数、*args 和 **kwargs,但要注意参数顺序:

必须按以下顺序定义:

  • 普通参数
  • 默认参数
  • *args
  • **kwargs
例如:

def example(a, b=10, *args, **kwargs):
    print("a:", a)
    print("b:", b)
    print("args:", args)
    print("kwargs:", kwargs)

example(1, 2, 3, 4, x=5, y=6)

输出:

a: 1

b: 2

args: (3, 4)

kwargs: {'x': 5, 'y': 6}

基本上就这些。掌握默认值和可变参数,能让函数接口更友好、适应更多场景。关键是理解每种参数的作用和书写顺序。不复杂但容易忽略细节。

本文转载于:互联网 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注