`
Ydoing
  • 浏览: 106058 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

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__.Dog object at 0x7fc2985b8e10>}
        '''
        print locals()

def func():
    x = 1
    y = 2
    def wrap():
        pass
    '''
    打印 func local is: {'wrap': <function wrap at 0x7fc2985be938>, 'y': 2, 'x': 1}
    '''
    print 'func local is: %s' % locals()

x = 1
y = 2

func()

'''
两者都打印{'__builtins__': <module '__builtin__' (built-in)>, '__file__': 't.py', 'Dog': <class '__main__.Dog'>, '__package__': None, 'func': <function func at 0x7fc2985be7d0>, 'x': 1, 'y': 2, '__name__': '__main__', '__doc__': None}
'''
print 'local is: %s' % locals()
print 'globals is: %s' %globals()

dog = Dog()
dog.eat()

输出

func local is: {'wrap': <function wrap at 0x7febea277938>, 'y': 2, 'x': 1}
local is: {'__builtins__': <module '__builtin__' (built-in)>, '__file__': 't.py', 'Dog': <class '__main__.Dog'>, '__package__': None, 'func': <function func at 0x7febea2777d0>, 'x': 1, 'y': 2, '__name__': '__main__', '__doc__': None}
globals is: {'__builtins__': <module '__builtin__' (built-in)>, '__file__': 't.py', 'Dog': <class '__main__.Dog'>, '__package__': None, 'func': <function func at 0x7febea2777d0>, 'x': 1, 'y': 2, '__name__': '__main__', '__doc__': None}
{'h': 22, 'k': 11, 'self': <__main__.Dog object at 0x7febea271e10>}
<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>

版权声明:本文为博主原创文章,未经博主允许不得转载。

分享到:
评论

相关推荐

    Python内置函数locals和globals对比

    Python中的内置函数locals()和globals()是用于访问和操作程序中的变量空间的两个关键工具,它们可以帮助我们理解和调试代码。接下来我们将深入探讨这两个函数的工作原理和差异。 首先,Python使用名字空间来管理...

    Python 内置函数globals()和locals()对比详解

    在Python编程语言中,`globals()`和`locals()`是两个内置的函数,它们分别用于获取当前作用域中的全局变量和局部变量。理解这两个函数的工作原理对于深入掌握Python的变量管理和作用域规则至关重要。 首先,`...

    Python基础教程之内置函数locals()和globals()用法分析

    Python编程语言中,内置函数`locals()`和`globals()`是两个非常重要的工具,它们用于查看和操作当前执行环境中的变量。这两个函数可以帮助开发者理解和调试代码,了解变量在不同作用域内的存储和使用。 1. `locals...

    Python两个内置函数 locals 和globals(学习笔记)

    Python中的`locals()`和`globals()`是两个内置的函数,它们提供了访问当前作用域和全局作用域变量的能力。这两个函数返回的都是字典,其中包含了当前作用域内所有变量的名称及其对应的值。 首先,我们要了解Python...

    Python神奇的内置函数locals的实例讲解.pdf

    Python中的`locals()`是一个内置函数,它在程序执行过程中扮演着重要的角色,尤其是在处理动态变量和命名空间时。本篇文章将深入探讨`locals()`函数的使用及其背后的命名空间概念。 首先,`locals()`函数返回一个...

    Python神奇的内置函数locals的实例讲解

    Python中的`locals()`是一个内置函数,它以字典形式返回当前作用域内的变量名和它们对应的值。这个函数在处理动态创建和访问变量时显得尤为有用。本文将深入探讨`locals()`函数的工作原理及其在实际编程中的应用。 ...

    详解Python locals()的陷阱

    Python的命名空间通过一种字典的形式来体现, 而具体到函数也就是locals() 和 globals(), 分别对应着局部命名空间和全局命名空间. 于是, 我们也就能通过这些方法去实现我们”动态赋值”的需求. 例如: def test(): ...

    Python实训题目.pdf

    其中,expression 是要执行的字符串表达式,globals 和 locals 是全局和局部命名空间。 在题目中,eval() 函数被用来执行字符串表达式,例如,x, y = eval(input()) 将用户输入的字符串转换为 Python 表达式,并...

    Python 3 Reference Card (Python3语法快速查询卡片)

    最后,Python通过内建的函数如id()、dir()、vars()、locals()、globals()以及help()等提供了程序的内省功能。内省是指在运行时对对象的内部结构进行检查和操作的能力,这些功能使得开发者可以更方便地获取对象的信息...

    python二级考试试题2.doc

    选项 D 中的 "eval 函数的定义为:eval(source, globals=None, locals=None, /)" 是正确的,eval 函数的定义为:eval(source, globals=None, locals=None, /)。 Python 语言特点 在 Python 语言特点问题中,选项 A...

    Python源码剖析

    源码中`PyObject *locals, *globals`的使用解释了这些概念。 6. **异常处理**:Python的异常处理基于try/except/finally结构,源码解析可以帮助我们理解异常是如何被抛出、捕获和传播的。 7. **GIL(全局解释器锁...

    Python-3.5.10.tgz

    此外,还增加了 `exec()` 函数的 `globals` 和 `locals` 参数,使其在执行代码块时能更好地控制作用域。 4. **集合推导式**:集合推导式类似于列表推导式,但创建的是集合而非列表。这样可以在一行代码中快速生成不...

    python pyv8

    `locals`和`globals`分别代表局部和全局变量。 需要注意的是,由于PyV8是基于V8引擎,因此JavaScript代码的执行速度非常快,但它也可能消耗大量内存。在处理大型或复杂的JavaScript任务时,应谨慎考虑资源管理。 ...

    python选择题word打印版.doc

    eval 函数,正确的描述是 eval 函数的定义为:eval(source, globals=None, locals=None, /),执行“&gt;&gt;&gt; eval("Hello")”和执行“&gt;&gt;&gt; eval("'Hello'")”得到不同的结果,eval 函数的作用是将输入的字符串转为 Python ...

Global site tag (gtag.js) - Google Analytics