python 变量作用域的嵌套问题?

查看:60
本文介绍了python 变量作用域的嵌套问题?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

a=1
def first():
    global a
    b=2
    
    a=b
    def second():
        c=3
        
        b=c
        print(b)
    
    second()
    print(b)

first()

输出为 3 2
这里 first函数里 通过 global 引用全局变量a 并成功赋值,那second函数里怎么修改first里的变量b呢?

解决方案

可以看一下nonlocal.
https://docs.python.org/3/ref...

a=1
def first():
    global a
    b=2

    a=b
    def second():
        c=3

        nonlocal b
        b=c
        print(b)

    second()
    print(b)

first()

这篇关于python 变量作用域的嵌套问题?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆