python3中函数的参数
一. 简介
前面学习了Python3中函数的语法规则,文章如下:
python3中函数的语法规则-CSDN博客
本文继续学习python中函数的参数。调用函数时可使用的正式参数类型:
必需参数,关键字参数,默认参数,不定长参数。
二. python3 中函数的参数
1. 必需参数
必需参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。也可以叫位置参数,参数的顺序决定了它们的值。
调用带必需参数的函数时,必须按照函数声明的顺序传入参数,否则,会报错。
示例如下:
#!/usr/bin/env python3def print_msg(str):print(str)return#调用 print_msg函数
print_msg("I am wonderful!")
以上的函数中参数就是必需参数,调用时参数是必须要传入的,而且调用时参数数量必须和声明时一样。
2. 关键字参数
关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值。
使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。
可以通过参数名传递值,而不必遵循参数的顺:
#!/usr/bin/env python3def print_msg(name, profession):print(name, profession)print_msg(profession = "男演员", name = "张晚意")
输出如下:
张晚意 男演员
3. 默认参数
调用函数时,如果没有传递参数,则会使用默认参数。
在函数实现时可以为参数指定默认值,这样在调用函数时如果未提供该参数,将使用默认值。
示例如下:
#!/usr/bin/env python3def print_info(name, height = 183.6):print("名字:", name)print("身高:", height)#调用 print_info 函数
print_info("张晚意", 180.0)
print_info("肖战")
输出如下:
名字: 张晚意
身高: 180.0
名字: 肖战
身高: 183.6
可以看出,当调用函数时如果没有传入 height参数的值,则会使用默认值。
4. 不定长参数
有时你可能需要传递任意数量的参数。Python 提供了两种方式来处理这种情况:*args 和 **kwargs。
*args:用于传递任意数量的位置参数,这些参数以元组的数据类型传入函数。
**kwargs:用于传递任意数量的关键字参数,这些参数会以字典的形式传入函数。
示例如下:
(1) 函数的参数为 *args,则该参数以元组的形式传入函数中:
#!/usr/bin/env python3def print_fruits(size, *fruits):print(f"fruits'a size:", size)for topping in fruits:print(f"- {topping}")#调用 print_fruits函数
print_fruits(4, "apple", "banana", "orange")
输出如下:
fruits'a size: 4
- apple
- banana
- orange
(2) 函数的参数为 **kwargs,则该参数以字典的形式传入函数中:
#!/usr/bin/env python3def build_profile(first, last, **user_info):profile = {}profile["firt_name"] = firstprofile["last_name"] = lastfor key, value in user_info.items():profile[key] = valuereturn profile#调用 build_profile函数
user_profile = build_profile("albert", "einstein", location="princeton", field="physics")
print(user_profile)
输出如下: