首页 > 其他 > 详细

匿名函数和闭包的区别

时间:2019-11-26 21:52:30      阅读:78      评论:0      收藏:0      [点我收藏+]

在学习python基础中对于匿名函数和闭包等只是有不太明白的地方,分不清他们的区别,所以整理下方便后期复习提升。反思:对于零碎的python基础知识,一定要牢记,多看多敲代码,一回生二回熟,熟能生巧。

一、匿名函数

所谓匿名就是不需要函数表达式

lambda x : x*x

关键字lambda表示匿名函数,冒号前面的x表示函数参数。

匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果。

技术分享图片

小结:

匿名函数:lambda表达式:通过一个表达式实现函数功能
基本语法:lambda 参数列表:表达式语句
参数列表:用来给表达式传递数据
表达式语句:计算表达式,计算结果会自动输出
注意事项:lambda表达式,主要是用来替代功能简单的函数的!提高代码的简洁性
不要滥用!大量使用lambda表达式会造成代码可读性的严重下降!

 

二、闭包

1、定义:内部函数包含对外部作用域而非全剧作用域名字的引用,该内部函数称为闭包函数。

2、创建闭包函数:

  如果在一个内部函数里对外部作用域(但不是全局作用域)的变量进行引用,内部函数称为闭包(closure)

------闭包函数必须有内嵌函数
------内嵌函数需要引用该嵌套函数上一级namespace中的变量
------闭包函数必须返回内嵌函数

技术分享图片

 

小结:

闭包就是函数里面嵌套一个函数
因为函数的出现,导致变量出现了分化:全局变量、局部变量
全局变量:当前模块中任意地方都能访问!
局部变量:当前函数中可以操作
~全局变量-局部变量:变量-在函数外部调用访问:

匿名函数和闭包的区别

原文:https://www.cnblogs.com/pythonbetter/p/11938464.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!