首页 > 编程语言 > 详细

python之globals()和locals()

时间:2015-04-26 13:54:17      阅读:406      评论:0      收藏:0      [点我收藏+]

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>}

python之globals()和locals()

原文:http://blog.csdn.net/csujiangyu/article/details/45287087

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!