zoukankan      html  css  js  c++  java
  • 嵌套函数变量修改nonlocal & 全局变量修改global

    前几天在做一个简单的界面,单击Radiobutton保存字符串,在一个嵌套函数里面修改外部函数。一直不知道怎么修改,上网查了一下,搜关键字“嵌套函数修改变量”,找了好久,才得以解决。

    对于python 3来说

    nonlocal:

    嵌套函数中内部函数修改外部变量的值

    没有加该关键字是不能修改的:

    def outside():
    a = 'a'
    def inside():
    a = 'b'
    print(a)
    inside()
    print(a)
    outside()
    b
    a

    加关键字后是这样(不能 nonlocal a = 'b'):

    def outside():
        a = 'a'
        def inside():
            nonlocal a
            a = 'b'
            print(a)
        inside()
        print(a)
    outside()
    b
    b
    

    global:

    函数内部修改全局变量的值

    a = 'a'
    def test():
        global a
        a = 'b'
        print(a)
    test()
    print(a)
    b
    b
    

     如果外部数据类型是列表,append后可直接改变外部变量:

    def test():
        a.append('A')
        print(a)
    test()
    print(a)
    ['A']
    ['A']
    

     列表的情况在嵌套函数也一样。

  • 相关阅读:
    内存可用性判断 IsBadCodePtr IsBadReadPtr 等等
    部署到Linux使用VS Code 开发.NET Core 应用程序
    Gulp.js简介
    net WebApi中使用swagger
    深入理解
    软件框架
    重拾linux
    Linux创建修改删除用户和组
    Linux 之 rsyslog
    Lua 解释器
  • 原文地址:https://www.cnblogs.com/lyuzt/p/9445947.html
Copyright © 2011-2022 走看看