1. 函数的返回值
- 返回值就是函数执行返回之后的结果
- 通过return 来指定函数的返回值
- return后面可以跟任意的函数对象,也可以是一个函数
- 在函数中return后的代码都不会执行,return一旦执行函数自动结束
- fn 是函数对象 打印fn实际上就是在打印函数对象
- fn() 是在调用函数 打印fn()实际上就是在打印fn()的返回值
2. 文档字符串
- help() 函数是python内置函数,通过help() 函数查询函数功能
- 定义函数时候,可以在函数内部编写函数字符串,对函数进行说明
3. 函数作用域
- 函数作用域 > scope
- 是指函数的变量生效区域
- python中有2个作用域
- 全局作用域
- 在程序执行时创建,程序执行结束销毁
- 在函数以外的区域都是全局作用域
- 全局作用域中定义的变量都是全局变量,全局变量可以在程序的任意位置访问
- 函数作用域
- 在函数调用时创建,函数调用结束时销毁
- 函数每调用一次就产生一个新的函数作用域
- 函数作用域的变量都是局部变量,函数以外不可调用,只能内部调用
- 全局作用域
- 如果希望在函数内部修改全局变量,则需要使用一个global关键字,来声明变量
- 声明在函数内部的使用a是全局变量,此时我们修改a,就是在修改全局变量
4. 命名空间
- 实际上是一个字典,专门用来存储变量的字典
- locals() 获取当前作用域的命名空间
- 如果在全局作用域中调用locals() 函数 ,则获取全局变量名空间
- 如果在函数作用域中调用locals() 函数 ,则获取函数变量名空间
- 返回值是一个字典 dict ( key : value )
5. 递归函数
- 递归简单理解就是自己去引用自己
- 递归函数就是在函数中调用自己
- 递归是解决问题的一种方法,它的整体思想是将大问题分解成一个一个的小问题,知道问题无法分解时去解决问题
- 递归函数有2个条件
- 基线条件: 问题可以被分解为最小问题,当满足基线条件时递归不执行
- 递归条件: 可以将问题继续分解的条件