码迷,mamicode.com
首页 > 编程语言 > 详细

python-global和nonlocal区别

时间:2020-04-24 17:30:39      阅读:94      评论:0      收藏:0      [点我收藏+]

标签:区别   默认   code   嵌套   cal   oba   位置   oca   一个   

 

# L = Local     局部作用域
# E = Enclosing 嵌套作用域
# N = nonlocal  只作用于嵌套作用域,而且只是作用在函数里面
# G = global    全局作用域
# B = Built-in  内置作用域
"""
locals()函数返回一个当前位置的所有局部变量的字典
globals()函数返回一个全局变量的字典,包括所有导入的变量
local设置局部变量,local需在函数体内设置;在函数体内声明的变量,默认都是局部变量
global设置为全局变量,global需在函数体内设置; global同时还可以定义新的全局变量
nonlocal内层函数改变外层函数变量值,nonlocal需在内层函数中使用 ;nonlocal不能定义新的外层函数变量
"""
def test(c):
    global a
    a=10
    b=20
    print(a,b)
    print(局部变量,locals())
    def inner(*args, **kwargs):
        nonlocal c
        c=30
        print(c)
    return inner()
test(1)
print(全局变量,globals())

 

python-global和nonlocal区别

标签:区别   默认   code   嵌套   cal   oba   位置   oca   一个   

原文地址:https://www.cnblogs.com/shuzf/p/12768767.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!