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要求参数按以下顺序定义:
- 位置参数
- 默认参数
- *args
- **kwargs
def func(a, b=10, *args, **kwargs):
pass
总结
理解Python的参数系统,是你写出灵活、可复用代码的关键一步。