zoukankan      html  css  js  c++  java
  • python global和nonlocal的使用

    ◆global和nonlocal是Python的两个重要变量作用域关键字

    1.global用在全局变量,应用场景:

    变量定义在函数外部的时候,如果函数里面想改变这个全局变量的值,需要在当前的引用函数里面重新定义一个变量 并用关键字global修饰。

    例如:

    a=1
    def b():
       a+=1
       print(a)
    b()
    

    用ide写完这段代码的时候,还没运行就会报红线提示错误,运行之后产生错误,错误内容为:UnboundLocalError: local variable 'a' referenced before assignment

    解决方案:函数中重新声明变量并加修饰符global修改:

    #!/usr/bin/env python  
    # encoding: utf-8  
    a=1
    def b():
       global a
       a+=1
       print(a)
    b()

    2.nonlocal非全局变量,应用场景:

     在函数的函数里面使用函数的变量。表达的可能有点混乱,看代码就知道了

    #!/usr/bin/env python  
    # encoding: utf-8
    def b():
       num2=1
       def c():
         nonlocal num2#为了修改非全局变量
         num2+=2
         print(num2)
       return  c
    b()()
    

    3.综合应用

    #!/usr/bin/env python  
    # encoding: utf-8  
    gcount = 0
    
    def global_test():
        global gcount
        s=0
        def g():
            nonlocal s
            s+=2
            print(s)
        return g
        gcount+=1
        print (gcount)
    global_test()()
    

      

  • 相关阅读:
    SpringBoot整合系列-整合H2
    SpringBoot整合系列-整合Swagger2
    BZOJ3626 [LNOI2014]LCA
    BZOJ4475 [Jsoi2015]子集选取
    BZOJ4466 [Jsoi2013]超立方体
    BZOJ3997 [TJOI2015]组合数学
    BZOJ3996 [TJOI2015]线性代数
    BZOJ2227 [Zjoi2011]看电影(movie)
    BZOJ2337 [HNOI2011]XOR和路径
    BZOJ2330 [SCOI2011]糖果
  • 原文地址:https://www.cnblogs.com/c-x-a/p/8854145.html
Copyright © 2011-2022 走看看