玩蛇网提供最新Python编程技术信息以及Python资源下载!
您现在的位置: 玩蛇网首页 > Python问题解答 > 正文内容

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()

second的b是作用于second的局部变量和first里的b不是同一对象

second()
print(b)

你看你second里重新复制后最后print(b)不还是2么,没毛病。

玩蛇网文章,转载请注明出处和文章网址:http://www.iplaypy.com/wenda/wd14204.html

相关文章 Recommend

玩蛇网Python互助QQ群,欢迎加入-->: 106381465 玩蛇网Python新手群
修订日期:2018年01月12日 - 14时42分15秒 发布自玩蛇网

我要分享到:

必知PYTHON教程 Must Know PYTHON Tutorials

必知PYTHON模块 Must Know PYTHON Modules