Python基础入门 Day81 函数的参数解包

133次阅读
没有评论

共计 1011 个字符,预计需要花费 3 分钟才能阅读完成。

在 Python 中,函数的参数传递方式非常灵活。除了常见的固定位置参数和关键字参数外,还可以使用参数解包的方式来传递多个值或键值对。主要通过 *args**kwargs来实现。

一、*args的使用
*args用于接收任意数量的位置参数,并以元组的形式传入函数。
示例:

def add_numbers(*args):
    total = 0
    for num in args:
        total += num
    return total

print(add_numbers(1, 2, 3))      # 输出 6
print(add_numbers(5, 10, 15, 20)) # 输出 50

在上例中,函数可以接受任意数量的数字,args会自动将它们打包为一个元组。

二、**kwargs的使用
**kwargs用于接收任意数量的关键字参数,并以字典的形式传入函数。
示例:

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

show_info(name="Alice", age=25, city="Shanghai")

输出:

name: Alice
age: 25
city: Shanghai

这里 kwargs 会将传入的关键字参数转为字典,方便处理。

三、结合使用 *args**kwargs
二者可以同时在函数定义中使用,用来接收任意的参数组合。
示例:

def func(*args, **kwargs):
    print(" 位置参数:", args)
    print(" 关键字参数:", kwargs)

func(1, 2, 3, name="Bob", age=30)

输出:

位置参数: (1, 2, 3)
关键字参数: {'name': 'Bob', 'age': 30}

四、参数解包
除了函数定义中使用,*** 还可以在函数调用时解包已有的列表或字典。
示例:

def greet(name, age, city):
    print(f" 你好,我是 {name},今年{age} 岁,来自{city}。")

args = ("Tom", 28, "Beijing")
kwargs = {"name": "Lucy", "age": 22, "city": "Guangzhou"}

greet(*args)
greet(**kwargs)

这里分别演示了列表 / 元组和字典的解包传参方式。

通过掌握 *args**kwargs,我们能够更灵活地设计和调用函数,尤其在编写通用工具函数或需要处理复杂参数时,优势非常明显。

正文完
 0
评论(没有评论)