标签:python 命名空间 作用域 可访问性 lookup
首先了解什么是命名空间,命名空间是一个”命名->对象“的映射,在python中用dict实现的。
而作用域,是指能直接访问到的命名空间。
当我们访问一个变量时,会按LEGB的顺序来lookup:
当我们通过实例即self.x访问一个属性时,它的lookup顺序是:
s = 'global' class Foo(object): s = 'class' def __init__(self): print s #全局变量,输出global print Foo.s #类属性,输出class print self.s #实例属性中没找到,于是到类属性中找,输出class self.s = 'instance'#创建了个实例属性 print self.s #实例属性能找到,输出instance Foo()
标签:python 命名空间 作用域 可访问性 lookup
原文地址:http://blog.csdn.net/handsomekang/article/details/41396527