python:LEGB标识符解析顺序

简介: LEGB标识符解析顺序
"""
LEGB查询规则:
L   locals  局部变量,当前所在命名空间(如函数,模块等)    注意,包括函数的参数(形参)
E   Enclosing Function  闭包空间(外部嵌套函数的命名空间)
G   Globals 全局变量,某个python模块的命名空间
B   Builtins    python内建模块的命名空间
"""
key='Hello'#模块全局


def test():
    print(key)#全局,输出:Hello


def test2(key):
    print(key,end='***')#局部(形参),输出 key参数传入的值
    key=key+str(512)
    print(key)

def test3():
    #print(key)
    """ 这里↑遵循LEGB规则解析标识符key的时候,
    在函数locals中发现了key=1024
    key不再当作全局变量解析,所以打开注释后这里会报错:
    local variable 'key' referenced before assignment
    """
    key=1024#注意和前面的test函数比较
    print(key)


def test4():
    global key
    #若要在模块内的某个函数里面修改模块全局变量,一定要有global关键字
    key=1024



if __name__ == '__main__':
    test()
    test2('hi')
    test3()
    test4()
    test()

运行结果:

Hello
hi***hi512
1024
1024

Process finished with exit code 0

这个问题使用pycharm编程时候,编辑器是可以用高亮给你提示出来的......So,有个好的IDE真实省心省力啊O(∩_∩)O

目录
相关文章
|
16天前
|
存储 缓存 算法
Python中collections模块的deque双端队列:深入解析与应用
在Python的`collections`模块中,`deque`(双端队列)是一个线程安全、快速添加和删除元素的双端队列数据类型。它支持从队列的两端添加和弹出元素,提供了比列表更高的效率,特别是在处理大型数据集时。本文将详细解析`deque`的原理、使用方法以及它在各种场景中的应用。
|
3天前
|
SQL API 数据库
Python中的SQLAlchemy框架:深度解析与实战应用
【4月更文挑战第13天】在Python的众多ORM(对象关系映射)框架中,SQLAlchemy以其功能强大、灵活性和易扩展性脱颖而出,成为许多开发者首选的数据库操作工具。本文将深入探讨SQLAlchemy的核心概念、功能特点以及实战应用,帮助读者更好地理解和使用这一框架。
|
16天前
|
数据采集 数据挖掘 Python
Python中collections模块的Counter计数器:深入解析与应用
在Python的`collections`模块中,`Counter`是一个强大且实用的工具,它主要用于计数可哈希对象。无论是统计单词出现的频率,还是分析数据集中元素的分布情况,`Counter`都能提供快速且直观的结果。本文将深入解析`Counter`计数器的原理、用法以及它在实际应用中的价值。
|
22天前
|
安全 Python
Python封装:深入解析与应用
封装是Python面向对象编程的关键,通过隐藏对象属性和实现细节,提供公共访问方式,确保代码安全和可维护。实现封装主要通过类和对象,使用私有属性(__前缀)及访问器/修改器方法。封装能隐藏内部状态、统一接口、复用代码和增强扩展性。示例展示了如何用私有属性和访问器方法控制属性访问。掌握封装有助于编写高效、灵活的代码。
|
22天前
|
Python
Python类与对象:深入解析与应用
本文介绍了Python中的核心概念——类和对象,以及它们在面向对象编程中的应用。类是用户定义的类型,描述具有相同属性和行为的对象集合;对象是类的实例,具备类的属性和方法。文章通过示例讲解了如何定义类、创建及使用对象,包括`__init__`方法、属性访问和方法调用。此外,还阐述了类的继承,允许子类继承父类的属性和方法并进行扩展。掌握这些概念有助于提升Python编程的效率和灵活性。
|
23天前
|
缓存 数据库 Python
Python装饰器:深入解析与应用
Python装饰器是函数,接收函数作为参数并返回新函数,用于在不修改原函数的情况下添加额外功能。它们基于Python的函数一等公民特性,允许在执行前后插入逻辑。应用场景包括日志记录、性能分析、权限校验、缓存和事务管理。学习装饰器能提升代码质量和维护性。
|
25天前
|
Python
深入解析Python中的字典推导式
深入解析Python中的字典推导式
|
1月前
|
XML 安全 API
Python读写XML文件:深入解析与技术实现
Python读写XML文件:深入解析与技术实现
40 0
|
7月前
|
XML JavaScript 关系型数据库
|
7月前
|
XML JSON 编解码

推荐镜像

更多