globals和locals的区别

Python的两个内置函数,locals 和globals,它们提供了基于字典的访问局部和全局变量的方式。

1、locals()是只读的。globals()不是。这里说的只读,是值对于原有变量的只读。其实还可以对locals()赋值的。见下图

上面的图就可以看出了,对locals()中增加了一个b变量。

2、locals和globals的返回不同。

globals返回的是当前模块的全局变量,locals返回的是局部变量。注意,locals返回的是当前所在最小命名空间的局部变量的一个拷贝。比如说在一个函数中调用locals(),那么返回的将是这个函数内部的局部变量。

locals返回的变量都是原有变量的“拷贝”

原文地址:https://www.cnblogs.com/joneylulu/p/10252658.html

时间: 2024-08-01 19:16:46

globals和locals的区别的相关文章

php中获取数据 php://input、$_POST与$GLOBALS['HTTP_RAW_POST_DATA']三者的区别

$_POST 只有Coentent-Type的值为application/x-www.form-urlencoded和multipart/form-data两种类型时,$_POST才能获取到数据. $GLOBALS['HTTP_RAW_POST_DATA'] 如果php无法识别Coentent-Type类型,也就无法获取请求数据,这个时候,可以用$GLOBALS['HTTP_RAW_POST_DATA']来获取. php://input 1. 从使用结果看,php://input与$GLOBAL

globals() 和 locals() 函数

globals() 和 locals() 函数 根据调用地方的不同,globals() 和 locals() 函数可被用来返回全局和局部命名空间里的名字. 如果在函数内部调用 locals(),返回的是所有能在该函数里访问的命名. 如果在函数内部调用 globals(),返回的是所有在该函数里能访问的全局名字. 两个函数的返回类型都是字典.所以名字们能用 keys() 函数摘取. 原文地址:https://www.cnblogs.com/MaxElephant/p/10168412.html

python globals()和locals(),global和nonlocal,以及闭包

1. 命名空间和作用域 命名空间 1. 内置命名空间: python解释内部运行时的变量函数 2. 全局命名空间: 我们在py文件中直接声明出来的变量, 函数 3. 局部命名空间: 在函数内部声明的变量和函数 作用域: 1. 全局作用域: 内置 + 全局 2. 局部作用域: 局部 globals() 查看全局作用域中的名字 locals() 查看当前作用域中的名字 2. global和nonlocal global: 把全局变量拿到局部来用. nonlocal:把离他最近的一层的变量拿过来, 不

Python globals和locals函数_reload函数

Python globals和locals函数_reload函数: globals( ): 返回所有能够访问到的全局名字 num = 5 sum = 0 def add(num): func_sum = 0 func_sum += num return func_sum print(globals()) ''' {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importl

Python标准库:内置函数eval(expression, globals=None, locals=None)

本函数是用来动态地执行一个表达式的字符串,或者compile函数编译出来的代码对象.参数expression是一个表达式字符串,或者表示编译出来代码对象的名称:参数globals是全局命名空间,可以指定执行表达式时的全局作用域的范围,比如指定某些模块可以使用.如果本参数缺省,就使用当前调用这个函数的当前全局命名空间:参数locals是局部作用域命名空间,是用来指定执行表达式时访问的局部命名空间.如果全局命名空间参数出现,但缺省内置模块,那么会自动拷贝这个模块到全局命名空间,意味着无论怎么设置,都

python之globals()和locals()

global()返回全局作用域的属性字典, locals()返回局部作用域的属性字典.当locals()在模块顶层的位置时返回的值与global()相同. 实例 #!/usr/bin/python #coding=utf-8 class Dog(object): x = 11 y = 12 def __init__(self): m = 44 n = 33 def eat(self): k = 11 h = 22 ''' 打印 {'h': 22, 'k': 11, 'self': <__main

PHP中$GLOBALS与global的区别详解_php技巧 - PHP

文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 PHP中$GLOBALS和global都可以实现全局变量的功能,所以很多人都认为global和$GLOBALS[]只是写法上面的差别,其实不然.$GLOBALS 是一个超级全局变量,其实是一个数组,而global 则是一个声明全局变量的关键字! 一.超全局变量$GLOBALS PHP超全局变量有很多,如下的都属于超全局变量(Superglobal): $GLOBALS,$_SERVER,$_GET,$_POST,$_

Python标准库:内置函数__import__(name, globals=None, locals=None, fromlist=(), level=0)

本函数实现导入模块的功能.这个函数主要为了语句import的功能而实现的,大多数情况之下,是不需要直接使用这个函数.比如想动态地加载模块,才需要使用这个函数. 例子: import glob,os modules = [] for module_file in glob.glob("*-plugin.py"): try: module_name,ext = os.path.splitext(os.path.basename(module_file)) module = __import

Effective JavaScript Variable Scope Item 8-9 Globals and Locals

本系列作为Effective JavaScript的读书笔记. Item 8:少用全局对象 重点: 全局对象能够带来便利,但是有经验的程序员都会视图避免它.因为它会带来潜在的命名冲突的风险 全局变量是维系不同模块之间的纽带,模块之间只能通过全局变量来访问对方提供的功能 能使用局部变量的时候,绝不要使用全局变量 在browser中,this关键字会指向全局的window对象 两种用来改变全局对象的方式,通过var关键字声明以及给全局对象设置属性(通过this关键字) 通过全局对象进行针对当前运行环