1.函数的简介
-
函数也是一个对象
-
函数来保存一些可执行的代码,并且可以在需要时,对这些语句进行多次调用
-
函数中保存的代码不会立即执行,需要调用的时候代码才会执行
-
fn是函数名,也是函数对象,fn()这是调用函数对象
-
语法:
def fn():
代码块
//调用
fn()
2.函数的参数
- 参数在定义函数的时候,可以在函数后面的括号里定义数量不等的形参,
- 形参: 就是形式上的参数,多个参数之间必须用逗号隔开(形参就是没有赋值的参数)
- 实参: 实参就是会赋值给对应的形参的参数,有几个形参就要传几个实参
3.参数的传递方式
- 参数可以指定一个默认值
- 位置传参: 就是将对应位置上的实参赋值给对应位置上的形参
- 关键字传参: 可以不按照定义的顺序去传递实参,根据参数名去传递参数
- 和位置传参混合使用的时候,必须将位置参数传到最前面
- 和位置传参混合使用的时候,必须将位置参数传到最前面
4.实参的类型
-
实参可以传递任何类型的对象
-
在函数内修改函数外的变量,如果变量是int等在内存中有特定位置的数据,那么外部变量不会被修改,如果修改可变对象,那么外部的变量会被修改
5.不定长参数
- 使用*a接收不定长参数,a的对应数据是一个元组
- *a可以和其他的参数配合使用,但是*a一定要放到后面,且带*号的参数有且只能有一个
- *a只能接收位置参数
- **a来接收关键字参数,a的对应数据是一个字典
- *args 接收到的是位置传参,是一个元组
- **kwargs 接收到的是关键字传参,是一个字典
6.参数的拆包
- 对于元组
- 对于字典