zoukankan      html  css  js  c++  java
  • 匿名函数和闭包的区别

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

    一、匿名函数

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

    lambda x : x*x

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

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

    小结:

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

    二、闭包

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

    2、创建闭包函数:

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

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

    小结:

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

  • 相关阅读:
    剑指offer-矩形覆盖
    剑指offer-变态跳台阶
    剑指offer-跳台阶
    剑指offer-斐波那契数列
    剑指offer-旋转数组的最小数字
    剑指offer-用俩个栈实现队列
    剑指offer-重建二叉树
    剑指offer-从尾到头打印链表
    http头
    mysql-8.0解压缩版安装配置完整过程
  • 原文地址:https://www.cnblogs.com/pythonbetter/p/11938464.html
Copyright © 2011-2022 走看看