python 函数进阶与参数处理
可变参数
- 可变参数也称为不定长参数
- 传入函数中实际参数可以是任意多个
常见形式
- *args
- **kwargs
*args
- 接收任意多个实际参数,并将其放到一个元组中
- 使用已经存在的列表或元组作为函数的可变参数,可以在列表的名称前加*
#*args 接收任意多个实际参数,并将其放到一个元组中
def print_language(*args):
print(args)
for i in args:
print(i)
#调用函数,把不同数量的参数传递进去,用位置参数
print_language("python", "java")
print_language("python", "java", "php", "go")
params = ["python", "java", "php", "go"]
print_language(*params)
输出结果为:
(‘python’, ‘java’)
python
java
(‘python’, ‘java’, ‘php’, ‘go’)
python
java
php
go
(‘python’, ‘java’, ‘php’, ‘go’)
python
java
php
go
**kwargs
- 接收任意多个类似关键字参数一样显式赋值的实际参数,并将其放到一个字典中
- 使用已经存在字典作为函数的可变参数,可以在字典的名称前加**
def print_info(**kwargs):
print(kwargs)
print_info(Tom=18, Jim=20)
print_info(Tom=18, Jim=20, Lily=12)
data = {
'Tom':1,
'Jim':2,
'Lily':3
}
print_info(**data)
输出结果为:
{‘Tom’: 18, ‘Jim’: 20}
{‘Tom’: 18, ‘Jim’: 20, ‘Lily’: 12}
{‘Tom’: 1, ‘Jim’: 2, ‘Lily’: 3}