【思维导图】

函数是一种仅在调用时运行的代码块,函数让我们编写的代码可供重复使用,既能提高代码的复用率,也让代码更易于维护。函数必须在调用函数的代码行之前声明,始终添加注释以解释函数的用途,将使代码更具可读性。
形参是指出现在函数定义中的名称,而实参则是在调用函数时实际传入的值。函数参数进行值传递后,若形参的值发生改变,不会影响实参的值称之为传值(value)调用;反之,若形参的值发生改变,实参的值也会一同改变,称之为传引用(reference),亦称传址(address)。对于可变数据类型的变量,在作为实参传递时需要特别注意,以防在函数调用过程中修改了实参变量值,要避免该问题,可以传递实参的副本,即拷贝。
函数可以按位置、关键字/命名参数(named argument)、默认值参数,或通过不定长参数传递值,当形参名有实际意义,且显式名称可以让函数定义更易理解时,推荐使用关键字;如果大部分时候函数参数的值都是相同的,那可以通过默认值参数指定形参的默认值;如果不确定函数将要接收实参的个数,可以使用不定长参数,通过“*”接受多个位置参数打包(packing)成一个元组,通过“**”接收多个关键字参数打包成一个字典。使用时要注意,不定长参数要在位置参数的后面,不定长的关键字参数要在不定长的位置参数后面。
函数可以把数据作为结果返回,可以使用return语句显式指明函数的返回值,没有return语句时,默认为return None。