一、函数调用的过程
概念: 每次调用函数的时候,系统会自动为这个函数创建一个临时的栈区间,用来保存在这个函数中产生的数据
函数调用结束后栈区间会自动释放,里面保存的数据也会自动销毁。
-
return的作用
1)return – 直接结束函数,返回是None
2)return 返回值 – 返回一个返回值
3)return 值1,值2,… – 返回多个返回值
def func():
print('+++')
return
print('---') # 不会执行
func() # +++
二、参数
- 位置参数和关键字参数
"""
1) 位置参数 - 调用函数的时候直接提供实参对应的数据,让实参和形参在位置上一一对应
2) 关键字参数 - 调用函数的时候在实参前面加 '参数名='。关键字参数在使用的时候可以随意交换位置
3) 位置参数和关键字参数混用: 位置参数必须在关键字参数的前面
"""
- 默认值参数
"""
定义函数的时候可以以'形参=值'的方式给参数提供默认值。
如果一个参数有默认值,那么调用函数的时候有默认值的参数可以不用传参
注意: 如果定义函数的时候有的参数有默认值,有的参数没有,那么没有默认值的参数必须在有默认值参数的前面。
"""
3.参数说明类型
"""
方法一:在没有默认值的参数后面加':类型名'
方法二:给参数赋默认值,默认值是什么类型的数据,类型提示就是什么类型
"""
- 不定长参数
"""
带*的不定长参数 - 在某个参数前面加*,那么这个参数就会变成一个不定长参数,调用的时候可以接收多个实参。
带*的参数的本质就是一个元组,接收的所有的实参是这个元组中的元素。
注意:给*的不定长参数传参的时候必须使用位置参数。
记住:定义函数的时候如果参数列表中有*,*的作用是让*后面的参数在调用的时候必须使用关键字参数传参
"""