首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

第54p,函数嵌套与函数对象,把函数当作参数使用

大家好,我是杨数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原创,欢迎关注,带你一起长知识。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200731A0JXS400?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券