Python 程序设计讲义(57):Python 的函数——可变参数的使用
Python 程序设计讲义(57):Python 的函数——可变参数的使用
目录
- Python 程序设计讲义(57):Python 的函数——可变参数的使用
- 一、使用*args定义可变位置参数
- 二、使用**kwargs定义可变关键字参数
- 三、可变参数的应用场景
- 1、动态参数列表
- 2、处理配置选项
- 3、 组合参数
在Python
中,函数的参数可以是固定的,也可以是可变的。可变参数允许函数接受任意数量的参数。Python
提供了两种主要的可变参数形式:*args
和 **kwargs
。
一、使用*args定义可变位置参数
*args
允许将多个非关键字参数传递给函数。*args
将多个参数打包为一个元组。
例如:
def func1(*args):print(args)for x in args:print('hello',x)func1('zhangsan','litao','wanggang')程序的运行结果为:
('zhangsan', 'litao', 'wanggang')
hello zhangsan
hello litao
hello wanggang
二、使用**kwargs定义可变关键字参数
**kwargs
允许你将多个关键字参数传递给函数。**kwargs
将参数打包为一个字典。
例如:
def func1(**kwargs):print(kwargs)for key,value in kwargs.items():print('{}:{}'.format(key,value))func1(name='litao',age=25,city="xinxiang")程序的运行结果为:
{'name': 'litao', 'age': 25, 'city': 'xinxiang'}
name:litao
age:25
city:xinxiang
三、可变参数的应用场景
可变参数的灵活性使其在多种场景中非常有用。
1、动态参数列表
在某些情况下,函数的参数数量可能不确定。使用可变参数可以轻松解决这一问题。
例如:设计一个函数,求一组数值的平均数
def average(*args):return sum(args) / len(args)avg=average(1,2,3,4,5,6,7,8,9,10)
print(avg)
avg=average(5.8,-58.7,69,98,-1.25,12)
print(avg)程序的运行结果为:
5.5
20.808333333333334
2、处理配置选项
使用 **kwargs
可以方便地接收一组不确定的关键字参数。
例如:
def connect_database(**kwargs):host = kwargs.get('host', 'localhost')port = kwargs.get('port', 3306)user = kwargs.get('user', 'admin')password = kwargs.get('password', '')print(f"Connecting to database at {host}:{port} as {user}")connect_database(host="127.0.0.1", user="user1", password="pwd")程序的运行结果为:
Connecting to database at 127.0.0.1:3306 as user1
3、 组合参数
某些情况下,可能需要同时使用位置参数和关键字参数。这时可以将 *args
和 **kwargs
结合使用。
例如:
def display_info(age, *args, **kwargs):print(f"Age: {age}")for name in args:print(f"Name: {name}")for key, value in kwargs.items():print(f"{key}: {value}")display_info(30, "Alice", "Bob", city="New York", occupation="Engineer")程序的运行结果为:
Age: 30
Name: Alice
Name: Bob
city: New York
occupation: Engineer