Python 函数参数详解:位置参数、关键字参数与默认值

Python 函数参数的魅力

Python的函数参数系统非常灵活,理解它们能写出更优雅的代码。

位置参数和关键字参数

def greet(name, greeting):
    return f'{greeting}, {name}!'

# 位置参数
print(greet('小明', '你好'))  # 你好, 小明!

# 关键字参数
print(greet(greeting='Hello', name='Tom'))  # Hello, Tom!

默认参数

def greet(name, greeting='你好'):
    return f'{greeting}, {name}!'

print(greet('小明'))          # 你好, 小明!
print(greet('Tom', 'Hi'))    # Hi, Tom!

注意:默认参数必须是不可变对象(字符串、数字、元组),不能用列表或字典。

*args 可变参数

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

print(sum_all(1, 2, 3, 4))  # 10

**kwargs 关键字参数

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

print_info(name='小明', age=18, city='北京')
# name: 小明
# age: 18
# city: 北京

参数组合顺序

Python要求参数按以下顺序定义:

  1. 位置参数
  2. 默认参数
  3. *args
  4. **kwargs
def func(a, b=10, *args, **kwargs):
    pass

总结

理解Python的参数系统,是你写出灵活、可复用代码的关键一步。