iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >详解Python函数作用域的LEGB顺序
  • 449
分享到

详解Python函数作用域的LEGB顺序

详解函数顺序 2022-06-04 19:06:55 449人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

本文为大家介绍了python函数作用域的查找顺序,供大家参考,具体内容如下 1.什么是LEGB? L:local 函数内部作用域 E:enclosing 函数内部与内嵌函数之间 G:global 全局

本文为大家介绍了python函数作用域的查找顺序,供大家参考,具体内容如下

1.什么是LEGB?
L:local 函数内部作用域
E:enclosing 函数内部与内嵌函数之间
G:global 全局作用域
B:build-in 内置作用域

2.LEGB是作什么用的?
为什么非要介绍这个呢?或者说它们的作用是什么?
原因是因为我们的在学习Python函数的时候,经常会遇到很多定义域的问题,全部变量,内部变量,内部嵌入的函数,等等,Python是如何查找的呢?以及Python又是按照什么顺序来查找的呢?这里做一个顺序的说明

3.顺序是什么
跟名字一样,Python在函数里面的查找分为4种,称之为LEGB,也正是按照这种顺序来查找的。

首先,是local,先查找函数内部
然后,是enclosing,再查找函数内部与嵌入函数之间(是指在函数内部再次定义一个函数)
其次,是global,查找全局
最后,是build-in,内置作用域

4.举例说明
ex1


passline = 60

def func(val):
  if val >= passline:
    print('pass')
  else:
    print('failed')

func(89)  

'''''''''''' 
pass
[Finished in 0.2s] 
''''''''''''

Python函数首先查找local,在局部变量作用域里并没有passline的定义,然后发现函数内部并没有内嵌函数,这时Python开始查找global,在全局里查找到passline的定义,被调用。

ex2


def Max(val1, val2):
  return max(val1, val2)

print(Max(90, 100))

'''''''''
100
[Finished in 0.1s]
'''''''''

Max函数里面直接调用另外一个函数,调用的max()(注意两个函数的大小写不一样),该函数并没有被定义,但是却属于我们上述的第四种,属于build-in函数,既是在python标准库里的函数,内置的,可以直接调用的。最后一步才会查找到这里

关于第二种,属于内嵌函数,即使在函数里面再次定义一个函数,这时会首先查找local函数里面是否有定义,然后才会查找函数里面内嵌函数里面有没有定义,这一种有专门的名词,叫做闭包,闭包在之前一些文章中都有介绍,希望大家阅读。

以上就是本文的全部内容,希望对大家的学习有所帮助。

--结束END--

本文标题: 详解Python函数作用域的LEGB顺序

本文链接: https://www.lsjlt.com/news/14941.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python函数命名空间,作用域LEGB及Global详析
    目录一、命名空间和作用域1.1 定义1.2 内建命名空间和内建作用域1.3 全局命名空间和全局作用域1.3 局部命名空间和局部作用域1.4 总结1.5 扩展LEGB二、Global关...
    99+
    2024-04-02
  • Python函数的作用域及内置函数详解
    目录1.函数的作用域2.函数的调用详解3.内置函数总结1.函数的作用域 -- 内置 -- 全局,顶格写 -- 局部,函数内部 a = 34 #全局变量 def run(): ...
    99+
    2024-04-02
  • Python函数中的作用域规则详解
    目录1、简单介绍一下闭包2、在Python中,并不是任何代码块都能引入新的作用域3、在Python中,名字绑定在所属作用域中引入新的变量,同时绑定到一个对象。总结Python是静态作...
    99+
    2024-04-02
  • Golang函数中变量作用域的详解
    Golang函数中变量作用域的详解在Golang中,函数是基本的代码块,用于完成某个特定的任务或计算。函数内部定义的变量有其特定的作用域,即变量在哪些代码段中可见和可用。本文将详细讨论Golang函数中变量的作用域,并提供具体的代码示例。局...
    99+
    2023-12-23
    Golang函数中的作用域 变量作用域详解 Golang函数变量的作用范围
  • 详解Golang函数中的变量作用域
    Golang函数中的变量作用域详解 在Golang中,变量的作用域指的是变量的可访问范围。了解变量的作用域对于代码的可读性和维护性非常重要。在本文中,我们将深入探讨Golang函数中的变量作用域,并提供具体的...
    99+
    2024-01-18
    变量 作用域 Golang函数
  • 详解JavaScript Alert函数执行顺序问题
    目录问题分析解决替换 Alert() 函数setTimeOut函数小结问题 前几天使用 JavaScript 写 HTML 页面时遇到了一个奇怪的问题: 我想实现的功能是通过 con...
    99+
    2024-04-02
  • Python函数参数传递以及变量作用域详解
    这篇文章主要介绍“Python函数参数传递以及变量作用域详解”,在日常操作中,相信很多人在Python函数参数传递以及变量作用域详解问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python函数参数传递以及变...
    99+
    2023-06-04
  • Java实现顺序表的操作详解
    目录一、顺序表是什么二、自定义异常空引用异常下标越界异常三、顺序表的方法顺序表的实现获取顺序表长度顺序表是否为空顺序表是否为满打印顺序表末尾新增元素指定位置新增元素判断是否包含某元素...
    99+
    2024-04-02
  • python函数作用域简介
    1.定义:函数中变量取值的地方;2.函数中的变量名除了特殊声明为全局变量或本地变量,否则均为局部变量;3.变量的作用域解析原则:LEGB原则,即:变量名引进分为三个作用域进行查找,首先是本地,再是函数内(如果存在),之后才是全局变量,最后...
    99+
    2023-01-31
    函数 作用 简介
  • Python变量的作用域详解
    目录总结每个变量都有自己的作用域,在作用域外使用该变量非法 函数体内的变量为函数的局部变量,在函数体外不可使用 >>>def f(): x=5 >&...
    99+
    2024-04-02
  • Python中变量的作用域详解
    目录1、作用于的概念2、局部变量3、全局变量4、变量的查找5、作用域中可变数据类型变量6、多函数程序执行流程总结1、作用于的概念 变量作用域指的是变量生效的范围,在Python中一共...
    99+
    2024-04-02
  • 详解Python数据结构与算法中的顺序表
    目录0. 学习目标1. 线性表的顺序存储结构1.1 顺序表基本概念1.2 顺序表的优缺点1.3 动态顺序表2. 顺序表的实现2.1 顺序表的初始化2.2 获取顺序表长度2.3 读取指...
    99+
    2024-04-02
  • Java数据结构顺序表用法详解
    目录1.什么是顺序表2.顺序表的基本功能和结构3.顺序表基本功能的实现和解析1.判断线性表是否为空2.获取指定位置的元素3.向线性表表添加元素4.在位置i处插入元素5.删除指定位置的...
    99+
    2024-04-02
  • js中解析顺序、作用域、严格模式的示例分析
    小编给大家分享一下js中解析顺序、作用域、严格模式的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、javascrip...
    99+
    2024-04-02
  • go语言中匿名函数的作用域陷阱详解
    众所周知在go语言中函数也可以当作变量在程序中使用,我们可以使用函数字面量在任何表达式内指定函数变量。但是在编写代码的时候请注意:如果一个函数在使用不是在该函数内部定义的变量时,这个...
    99+
    2024-04-02
  • Golang函数的变量作用域讲解
    Golang是一种非常流行的编程语言,它以其高效的并发性能和简洁的语法风格在业界备受好评。作为一门强类型语言,Golang也是支持变量的类型声明和作用域控制的。在Golang中,变量作用域是一个非常重要的概念。它决定了在何处可以访问一个变量...
    99+
    2023-05-18
    函数 Golang 变量作用域
  • 解析Golang函数变量的作用域
    Golang函数变量作用域解析,需要具体代码示例Golang是一种开源的静态类型编程语言,注重效率和简洁,其函数变量作用域的解析机制也是开发者需要了解的重要内容之一。本文将介绍Golang中函数变量的作用域以及与其相关的规则,同时提供代码示...
    99+
    2023-12-23
    作用域 解析 Golang函数变量
  • 理解Golang函数变量的作用域
    理解Golang函数变量的作用域,需要具体代码示例在Golang中,函数是一种特殊的变量类型,可以作为参数传递给其他函数,也可以作为返回值返回。而函数变量的作用域则是指函数变量在代码中可见和可访问的范围。函数变量的作用域可以分为全局作用域和...
    99+
    2023-12-23
    变量作用域 Golang函数 理解 Golang
  • Kotlin作用域函数应用详细介绍
    目录1.前置知识2.使用3.源码赏析3.1 let和run3.2 also和apply3.3 repeat3.4 with4.反编译5.小结平时看博客或者学知识,学到的东西比较零散,...
    99+
    2024-04-02
  • C语言实现顺序表的全操作详解
    目录线性表顺序表顺序表接口实现1.顺序表初始化2.顺序表空间增容3.顺序表打印4.尾插数据5.尾删数据6.头插数据7.头删数据8.在pos下标处插入数据9.删除pos下标处数据10....
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作