Python中的dir(),globals()和locals()函数有什么区别?
locals()返回您在本地范围内声明的变量的字典,而globals()返回您在全局范围内声明的变量的字典。在全球范围内,无论是locals()和globals()返回相同的字典全局命名空间。要注意这两个函数之间的区别,可以从一个函数中调用它们。例如,
def fun():
var = 123
print "Locals: ", locals() print "Vars: ", vars() print "Globals: ", globals()fun()这将给出输出:
Locals: {'var': 123}
Globals: {'__builtins__': <module '__builtin__' (built-in)>, '__name__': '__main__', 'fun': <function fun at 0x00000000
037E3DD8>, '__doc__': None, '__package__': None}vars()返回当前命名空间的字典(如果不带参数调用)或参数的字典。locals()和之间的主要区别在于,vars()它vars()也可以接受参数并返回所请求对象的字典。例如,如果要在dict中获取对象的属性,则可以传递该对象并获取该实例的属性dict。
对象的vars()函数类似于同一对象的__dict__属性。__dict__返回对象的所有已定义属性。例如,
class A():
def __init__(self, id):
self.id = id
a = A(1)
print "__dict__: ", a.__dict__
print "vars(a): ", vars(a)这将给出输出:
__dict__: {'id': 1}
vars(a): {'id': 1}热门推荐
7 十月简短祝福语
10 顾客简短祝福语大全集
11 酒桌升学祝福语简短
12 女朋友祝福语简短新年
13 婚庆花篮祝福语简短大气
14 女生成年祝福语简短
15 公司春节祝福语和简短
16 股市祝福语简短10字
17 老师祝福语简短100字
18 祝老婆生日祝福语简短