Python基础之函数

调用函数

函数名其实就是指向一个函数对象的引用,完全可以把函数名赋给一个变量,相当于给这个函数起了一个“别名”:

>>> a = abs # 变量a指向abs函数
>>> a(-1) # 所以也可以通过a调用abs函数
1

定义函数

  1. 定义函数时,需要确定函数名和参数个数
  2. 如果有必要,可以先对参数的数据类型做检查
  3. 函数体内部可以用return随时返回函数结果
  4. 函数执行完毕也没有return语句时,自动return None
  5. 函数可以同时返回多个值,但其实就是一个tuple

函数的参数

递归函数

使用递归函数需要注意防止栈溢出。在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出。

解决递归调用栈溢出的方法是通过尾递归优化。

尾递归是指,在函数返回的时候,调用自身本身,并且,return语句不能包含表达式。这样,编译器或者解释器就可以把尾递归做优化,使递归本身无论调用多少次,都只占用一个栈帧,不会出现栈溢出的情况。

猜你喜欢

转载自blog.csdn.net/weixin_33957036/article/details/80908450