一、函数的返回值
return xxx,返回值可以是函数;
当没有return语句,或者只有return且不带返回值时,均返回为None
return后面的语句不再实行,return一旦执行函数自动结束
当def()函数再次内嵌def()函数时,通过在需要调用内嵌函数时才使用()可以给使用者更加灵活的选择
fn是函数对象,打印fn就是在打印函数对象
fn()是函数调用,打印fn()是打印函数返回值
二、文档字符串
help(函数对象)用于查函数的作用
文档字符串通过三引号(长字符串)方式描述此函数的作用,一般配合help()来使用
三、函数的作用域
指的是变量生效的区域
1、全局作用域
全局作用域在程序执行时创建,在程序执行结束时销毁
在全局作用域中定义的变量,都是全局变量,全局变量可以在程序的任意位置进行访问
2、函数作用域
函数作用域在函数调用时创建,在调用结束时销毁
函数每调用一次就会产生一个新的函数作用域
在函数作用域中定义的变量,都是局部变量,它只能在函数内部被访问
函数内可以通过global声明为全局变量
四、命名空间
命名空间实际上就是一个字典,是一个专门用来存储变量的字典
locals()用来获取当前作用域的命名空间
globals()用来获取全局作用域的命名空间
如果在全局作用域中调用locals()则获取全局命名空间,如果在函数作用域中调用locals()则获取函数命名空间
返回值是一个字典
五、递归函数
递归的思想:函数自己调用自己
1、基线条件:问题可以被分解为最小的问题,当满足基线条件的时候,递归将不再执行:
2、递归条件:可以将问题继续分解的条件