Python 全局变量、LEGB原则

2019-12-26  本文已影响0人  李霖弢

全局变量

Python 的全局变量是模块 (module) 级别的

python默认内层作用域可以引用外层名称,但不可以改变(因为改变的话就会用到名称绑定操作),需要改变时应先使用global关键字声明,使其指向该模块下的全局变量

tt="1"
def test1():
    tt="2"
    def test2():
        global tt # 只会让test2函数体内的tt变为指向全局tt
        tt="3"
    test2() # 此处追溯到 Local tt="2"
    print(tt)
print(tt)
test1()
print(tt)
# 1 2 3

变量字典

通过以下函数可以获取变量字典
通过属性获取变量字典

每个模块具有__dict__字典属性
每个函数拥有对应的 __globals__ 字典属性,同其所属模块的 __dict__ 字典

上一篇 下一篇

猜你喜欢

热点阅读