函数二
本篇文章将继续和大家聊聊一些函数的知识,比如函数的返回值,变量的作用域,命名空间,以及有趣的递归函数。
函数的返回值return
return的简介
函数的返回值是函数执行后的结果,用return来指定函数的返回值,我们可以直接使用函数的返回值,也可以通过变量来接收函数的返回值,注意return后可接一切对象,包括函数。如:
return的部分特性
在函数中我们只写return(后面不带对象)或者不不写return语句,直接调用函数使用函数值,相当于return none;另外return可以用于结束函数(return后面的函数代码不会再执行)。如:
文档字符串(help函数)
help()函数可以用来查询其它函数的使用方法,语法规则:help(函数对象),比如help(print)
函数的作用域
作用域指的是变量生效的区域,包括全局作用域以及函数作用域。
全局作用域
全局作用域在程序执行时创建,在程序执行结束时销毁,所有函数以外的部分都是全局作用域,在全局作用域中定义的变量,都属于全局变量,全局变量可以在程序的任意位置访问。
如:
函数作用域
函数作用域在函数调用时创建,在调用结束后销毁,函数每调用一次就会产生一个新的作用域,在函数作用域中定义的变量都是局部变量,它只能在函数内部被访问到。
关键字global
global可以在函数内部对全局变量进行修改,语法规则:global 变量,如:
命名空间
命名空间实际上就是一个字典,是一个专门用来存储变量的字典;locals()用来获取当前作用域的命名空间, 如果在全局作用域中调用locals()则获取的是全局命名空间,如果在函数作用域中调用,则获取的是函数的命名空间 ,返回是一个字典。
globals()函数
globals()函数,可以在任意位置获取全局命名空间。如:
递归式函数
递归式函数就是在函数中调用自己。递归式的函数必须满足两个条件:
1.基线条件。问题可以分解为最小的问题,当满足基线条件的时候,递归就不在执行了;
2.递归条件。将问题可以一层层分解的条件。
如: