函数参数详解
- 传参方式
- 默认参数
- 不定长参数
函数-传参方式
传参方式指的是,在调用函数时,传递实参的方式。
1. 位置参数:调用函数时根据函数定义时的位置来传递参数。
要求:调用函数时参数顺序与定义函数时参数顺序完全一致。(我们之前所做的案例都是位置参数。)
2. 关键字参数:调用函数时以函数定义时形参名称作为关键字,以 "键=值" 的形式来传递参数(不要求顺序)。
要求:如果位置参数与关键字参数混用,关键字参数必须在位置参数之后(关键字参数之间,没有顺序要求)。
# ----------------函数-传参方式------------------ # 定义函数 def reg_stu(name, age, gender, city): print(f"注册成功,姓名:{name}, 年龄:{age}, 性别:{gender}, 城市:{city}") return {"name": name, "age": age, "gender": gender, "city": city} # 传参方式一:位置参数 stu = reg_stu("张三", 18, "男", "北京") print(stu) ''' 注册成功,姓名:张三, 年龄:18, 性别:男, 城市:北京 {'name': '张三', 'age': 18, 'gender': '男', 'city': '北京'} ''' # 传参方式二:关键字参数 stu = reg_stu(name="王林", age=28, gender="男", city="北京") print(stu) ''' 注册成功,姓名:王林, 年龄:28, 性别:男, 城市:北京 {'name': '王林', 'age': 28, 'gender': '男', 'city': '北京'} ''' stu = reg_stu(age=20, gender="女", city="石家庄", name="李木宛") print(stu) ''' 注册成功,姓名:李木宛, 年龄:20, 性别:女, 城市:石家庄 {'name': '李木宛', 'age': 20, 'gender': '女', 'city': '石家庄'} ''' # 传参方式三:位置参数+关键字参数 --->位置参数在前,关键字参数在后 stu = reg_stu("李木宛", 20, city="北京", gender="女") print(stu) ''' 注册成功,姓名:李木宛, 年龄:20, 性别:女, 城市:北京 {'name': '李木宛', 'age': 20, 'gender': '女', 'city': '北京'} '''位置参数 vs 关键字参数
黄金法则:半年后回头看你今天写的代码,能否一眼看出每个参数的含义,如果不能,就应该使用关键字参数。
小结:
1. 位置参数
- 调用函数时,传入的实参的顺序与定义函数时形参的顺序完全一致。
2. 关键字参数
- 调用函数时,通过“形参名=值”的形式传递参数,顺序没有要求。
- 如果同时存在位置参数与关键字参数,位置参数在前,关键字参数在后。
3. 两种传参方式的适用场景
- 一切以代码结构清晰明了(可读性)、便于维护(维护性)为目标;
- 如果参数比较少(不超过3个),可直接使用位置参数;
- 如果参数数量较多,建议使用关键字参数。
声明:本篇学习笔记参考黑马程序员相关课程,部分素材来源于网络公开资料及本人补充;文中为个人整理复盘,仅供学习交流使用。