大家好,我是杨数Tos,这是《从零基础到大神》系列课程的第54篇文章,第三阶段的课程:Python进阶知识:Python进阶知识:详细讲解Python中的函数(七)====> 函数的嵌套调用。
函数是非常重要的内容,在这里,我会用10篇左右的文章详细讲解Python中函数定义与使用的规则。
阅读提醒:建议小白先看一遍:【计算机基础知识】和【Python基础知识】课程,否则你不一定听得懂!
一、什么是函数嵌套调用
函数的嵌套指的是用一个函数调用另一个函数,从而实现需求;前面的文章中有出现过函数嵌套的例子,在实际开发过程中,基本上都会用到嵌套函数。
1、定义阶段就进行了嵌套定义
定义嵌套,子函数只属于母函数;
包括:函数对象、闭包函数、装饰器、生成器、函数的递归调用都是属于在定义阶段就进行了函数嵌套。
在定义阶段;在一个函数内再定义了一个函数;
二、函数嵌套时,作用域与名字的查找关系
在Python中,名称空间与作用域分为三种:内置、全局、局部;
函数嵌套使用的情况下,作用域与名字的查找关系,遵循局部>全局 > 内置,这样的由内往外查找的方式;以变量所以位置作为起始点,向外层查找名字。
例如:变量在全局时,直接在全局中查找;变量在局部时,就先在局部中查找,局部没有,向全局中查找;
三、函数对象的介绍
函数对象就是指把函数当成变量使用;
把函数当作参数传到另一个函数中,传的就是函数名称的内存地址;例如:fun3(fun);
把函数当作另一个函数的返回值;
把函数赋值,当作变量使用;例如:x = fun,然后执行 x(5),x传参,执行函数体功能;
把函数当作容器类型的一个元素;例如:list = [fun,],调func为:list[0],执行fun函数体list[0]()。
用了个小例子说明:
【def xu():
return 1111
def fun(x):
return x
y = fun(xu)
print(y())】
说明:函数y=fun(x)这一行表示,y=x这个函数名的内存地址
y()就表示 xu(),所以最后得到的是x这个函数的返回值,结果是1111。
以上是本期内容,如果有表达不对的内容,欢迎您的留言、斧正,我们一起天天向上。
感谢您的阅读,您的三连【关注、点赞、收藏】就是对我最大的支持,谢谢!
本文由杨数Tos原创,欢迎关注,带你一起长知识。