返回顶部
首页 > 资讯 > 后端开发 > Python >Python 内置函数:——locals 和 globals介绍
  • 682
分享到

Python 内置函数:——locals 和 globals介绍

2023-06-02 00:06:27 682人浏览 薄情痞子

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

摘要

locals 和 globals这两个函数主要提供,基于字典的访问局部和全局变量的方式。在理解这两个函数时,首先来理解一下 python 中的名字空间概念。Python 使用叫做名字空间的东西来记录变量的轨迹。名字空间只是一个字典,它的键字

locals 和 globals这两个函数主要提供,基于字典的访问局部和全局变量的方式。

Python 内置函数:——locals 和 globals介绍

在理解这两个函数时,首先来理解一下 python 中的名字空间概念。Python 使用叫做名字空间的东西来记录变量的轨迹。名字空间只是一个字典,它的键字就是变量名,字典的值就是那些变量的值。

实际上,名字空间可以像 Python 的字典一样进行访问。

每个函数都有着自已的名字空间,叫做局部名字空间,它记录了函数的变量,包括函数的参数和局部定义的变量。每个模块拥有它自已的名字空间,叫做全局名字空间,它记录了模块的变量,包括函数、类、其它导入的模块、模块级的变量和常量。还有就是内置名字空间,任何模块均可访问它,它存放着内置的函数和异常。

当一行代码要使用变量 x 的值时,Python 会到所有可用的名字空间去查找变量,按照如下顺序:

  1. 局部名字空间 - 特指当前函数或类的方法。如果函数定义了一个局部变量 x,Python将使用这个变量,然后停止搜索。
  2. 全局名字空间 - 特指当前的模块。如果模块定义了一个名为 x 的变量,函数或类,Python将使用这个变量然后停止搜索。
  3. 内置名字空间 - 对每个模块都是全局的。作为最后的尝试,Python 将假设 x 是内置函数或变量。

如果 Python 在这些名字空间找不到 x,它将放弃查找并引发一个 NameError 的异常,同时传递 There is no variable named 'x' 这样一条信息。

局部变量函数 locals 例子(locals 返回一个名字/值对的字典):

实例

def foo(arg, a):    x = 1    y = 'xxxxxx'    for i in range(10):        j = 1        k = i    print(locals())#调用函数的打印结果    foo(1,2)#{'k': 9, 'j': 1, 'i': 9, 'y': 'xxxxxx', 'x': 1, 'a': 2, 'arg': 1}

from module import 和 import module 之间的不同。使用 import module,模块自身被导入,但是它保持着自已的名字空间,这就是为什么你需要使用模块名来访问它的函数或属性(module.function)的原因。但是使用 from module import,实际上是从另一个模块中将指定的函数和属性导入到你自己的名字空间,这就是为什么你可以直接访问它们却不需要引用它们所来源的模块的原因。

locals 是只读的,globals 不是。

locals 不可修改,globals 可以修改,原因是:

  1. locals() 实际上没有返回局部名字空间,它返回的是一个拷贝。所以对它进行修改,修改的是拷贝,而对实际的局部名字空间中的变量值并无影响。
  2. globals() 返回的是实际的全局名字空间,而不是一个拷贝与 locals 的行为完全相反。

所以对 globals 所返回的 dictionary 的任何的改动都会直接影响到全局变量的取值。

实例

#!/usr/bin/env python    z = 7 #定义全局变量  def foo(arg):      x = 1      print( locals() )      print('x=',x)    locals()['x'] = 2 #修改的是局部名字空间的拷贝,而实际的局部名字空间中的变量值并无影响。      print( locals() )    print( "x=",x ) foo(3)  print( globals() )print( 'z=',z )globals()["z"] = 8 #globals()返回的是实际的全局名字空间,修改变量z的值  print( globals() )print( "z=",z )

输出结果为:

{'x': 1, 'arg': 3}x= 1{'x': 1, 'arg': 3}x= 1{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x10b099358>, '__spec__': None, '__annotations__': {}, '__builtins__':, '__file__': 'test.py', '__cached__': None, 'z': 7, 'foo':}z= 7{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x10b099358>, '__spec__': None, '__annotations__': {}, '__builtins__':, '__file__': 'test.py', '__cached__': None, 'z': 8, 'foo':}z= 8

--结束END--

本文标题: Python 内置函数:——locals 和 globals介绍

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

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

猜你喜欢
  • Python 内置函数:——locals 和 globals介绍
    locals 和 globals这两个函数主要提供,基于字典的访问局部和全局变量的方式。在理解这两个函数时,首先来理解一下 Python 中的名字空间概念。Python 使用叫做名字空间的东西来记录变量的轨迹。名字空间只是一个字典,它的键字...
    99+
    2023-06-02
  • python内置函数locals()和globals()怎么用
    本篇内容主要讲解“python内置函数locals()和globals()怎么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python内置函数locals()和globals()怎么用”吧!...
    99+
    2023-06-28
  • Python两个内置函数 locals 和globals(学习笔记)
    Python两个内置函数——locals 和globals 这两个函数主要提供,基于字典的访问局部和全局变量的方式。 在理解这两个函数时,首先来理解一下python中的名字空间概念。Python使用叫做名字...
    99+
    2022-06-04
    函数 学习笔记 两个
  • Python函数介绍:locals函数的功能和使用示例
    Python函数介绍:locals函数的功能和使用示例Python是一种广泛应用于各个领域的编程语言,其强大的函数特性帮助程序员有效地组织和管理代码。在Python中,有许多内置的函数可以帮助我们更好地完成编程任务。其中一个非常有用的函数是...
    99+
    2023-11-03
    Python函数 使用示例 locals函数
  • Python函数介绍:globals函数的功能和使用示例
    Python函数介绍:globals函数的功能和使用示例Python是一种功能强大的编程语言,提供了许多内置函数,其中globals()函数就是其中之一。本文将介绍globals()函数的功能和使用示例,并附带具体的代码示例。一、globa...
    99+
    2023-11-04
    Python函数 使用示例 globals函数
  • python内置函数语法介绍
    本篇内容介绍了“python内置函数语法介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一 前言   在编写Pytho...
    99+
    2023-06-04
  • Python max内置函数详细介绍
    Python max内置函数 max(iterable, *[, key, default]) max(arg1, arg2, *args[, key]) Return the largest item i...
    99+
    2022-06-04
    详细介绍 函数 Python
  • PHP 内置函数介绍
    php 提供了一系列内置函数用于执行各种任务,包括:字符串操作(strcmp、strtoupper、strtolower)数组处理(array_push、array_pop、in_arr...
    99+
    2024-04-19
    php 内置函数
  • JVM内置函数Intrinsics介绍
    目录1.什么是内置?2.JVM上的内置函数3.性能收益4.不可能的实现5.识别Java中的Intrinsics语言6.总结1.什么是内置? 内置函数是由我们的编程语言的编译器或解释器...
    99+
    2024-04-02
  • python内置函数:lambda、map、filter简单介绍
    lambda lambda可以理解为一种小函数,但是它是一个表达式,而不是一个语句,所以在def不允许出现的地方仍然可以使用lambda函数,例如list里。但是lambda内只可以执行一个表达式。 d...
    99+
    2022-06-04
    函数 简单 python
  • MySQL内部函数介绍
    文章目录 字符串函数数学函数日期函数聚合函数系统信息函数格式化函数 字符串函数 1. length(str) 计算字符串的长度。 select length('1+1=wang'),length('1+1=王'); ...
    99+
    2023-08-17
    mysql 数据库 函数
  • Python函数介绍:hasattr函数的介绍及示例
    Python函数介绍:hasattr函数的介绍及示例在Python中,hasattr()是一个内置函数。它的主要功能是检查一个对象是否有指定的属性或方法,并返回一个布尔值来指示是否存在。这个函数的使用方法非常简单,仅需要提供两个参数:一个对...
    99+
    2023-11-03
    示例 函数介绍 hasattr
  • Python函数介绍:enumerate函数的介绍及示例
    Python函数介绍:enumerate函数的介绍及示例Python是一种高级编程语言,它提供了许多强大的函数,其中一个非常实用的函数是enumerate。这个函数可以帮助我们迭代序列,并返回元素的索引及其值。这篇文章将介绍enumerat...
    99+
    2023-11-03
    示例 Python函数 enumerate函数
  • Python函数介绍:max函数的介绍及示例
    Python函数介绍:max函数的介绍及示例函数在Python编程中是非常重要的概念。Python内置了许多有用的函数,其中一个是max函数。本文将介绍max函数的用法以及示例代码,帮助读者更好地理解和运用。max函数的作用是返回给定参数的...
    99+
    2023-11-03
    Python 函数 max函数
  • Python函数介绍:exec函数的介绍及示例
    Python函数介绍:exec函数的介绍及示例引言:在Python中,exec是一种内置函数,它用于执行存储在字符串或文件中的Python代码。exec函数提供了一种动态执行代码的方式,使得程序可以在运行时根据需要生成、修改和执行代码。本文...
    99+
    2023-11-03
    示例 介绍 exec函数
  • Python函数介绍:zip函数的介绍及示例
    Python函数介绍:zip函数的介绍及示例Python是一种高级语言,它提供了许多有用的函数来帮助开发人员快速地编写程序。其中一个函数就是zip函数。Zip函数是Python中的内置函数之一,它可以接受一组可迭代对象(包括列表、元组、集合...
    99+
    2023-11-03
    示例 介绍 zip函数
  • Python函数介绍:map函数的介绍及示例
    Python函数介绍:map函数的介绍及示例在Python编程中,函数是一种非常重要的工具,可以用来封装一段可复用的代码。其中,map函数是一个强大且常用的函数,它可以对一个可迭代对象中的每一个元素应用一个指定的函数,然后返回一个新的可迭代...
    99+
    2023-11-03
    示例 Python函数 map函数
  • Python函数介绍:delattr函数的介绍及示例
    Python函数介绍:delattr函数的介绍及示例Python作为一门高级的编程语言,拥有丰富的内置函数库,提供了许多方便快捷的函数来进行各种操作。其中之一就是delattr函数。本文将详细介绍delattr函数的作用以及用法,并附上具体...
    99+
    2023-11-03
    Python 介绍 delattr函数
  • Python函数介绍:format函数的介绍及示例
    Python函数介绍:format函数的介绍及示例在Python中,format()函数是一个非常重要且常用的函数,它用于对字符串进行格式化处理。通过format()函数,我们可以将一些变量、数据和文字按照一定的格式拼接在一起,并输出成我们...
    99+
    2023-11-03
    介绍 关键词:Python函数 format函数
  • Python函数介绍:str函数的介绍及示例
    Python函数介绍:str函数的介绍及示例Python是一种简单易学的编程语言,拥有丰富的内置函数来帮助开发者处理数据。其中一个常用的内置函数是str函数。str函数主要用于将其他数据类型转换为字符串类型。str函数的用法如下:str(o...
    99+
    2023-11-03
    Python函数 str 的介绍及示例
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作