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>

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