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']
    

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

  • 相关阅读:
    AutoIT练习
    AutoIT键盘鼠标模拟组件
    javascript class 定义
    JIRA
    vs 命令窗口 常用命令
    jquery 获取参数 plugin
    THE VALUE OF TIME
    哈佛图书馆的二十条训言
    优秀javascript js组件集锦
    UVA 11205 The broken pedometer
  • 原文地址:https://www.cnblogs.com/lyuzt/p/9445947.html
Copyright © 2011-2022 走看看