globals() 和 locals() 函数

globals() 和 locals() 函数

根据调用地方的不同,globals() 和 locals() 函数可被用来返回全局和局部命名空间里的名字。

如果在函数内部调用 locals(),返回的是所有能在该函数里访问的命名。

如果在函数内部调用 globals(),返回的是所有在该函数里能访问的全局名字。

两个函数的返回类型都是字典。所以名字们能用 keys() 函数摘取。

原文地址:https://www.cnblogs.com/MaxElephant/p/10168412.html

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

globals() 和 locals() 函数的相关文章

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 globals()和locals(),global和nonlocal,以及闭包

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

Python的locals()函数

Python的locals()函数会以dict类型返回当前位置的全部局部变量. 示例代码: def func(): arg_a, arg_b = 'a', 'b' def func_a(): pass def func_b(): pass def print_value(): print(arg_a, arg_b) return locals() if __name__ == '__main__': args = func() print(type(args)) print(args) 运行结果

[py]Python locals() 函数

Python locals() 函数作用 http://www.runoob.com/python/python-func-locals.html locals() 函数会以字典类型返回当前位置的全部局部变量. 对于函数, 方法, lambda 函式, 类, 以及实现了 call 方法的类实例, 它都返回 True. locals()实例 >>>def runoob(arg): # 两个局部变量:arg.z ... z = 1 ... print (locals()) ... >&

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

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

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

globals和locals的区别

Python的两个内置函数,locals 和globals,它们提供了基于字典的访问局部和全局变量的方式. 1.locals()是只读的.globals()不是.这里说的只读,是值对于原有变量的只读.其实还可以对locals()赋值的.见下图 上面的图就可以看出了,对locals()中增加了一个b变量. 2.locals和globals的返回不同. globals返回的是当前模块的全局变量,locals返回的是局部变量.注意,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

Effective JavaScript Variable Scope Item 8-9 Globals and Locals

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