zoukankan      html  css  js  c++  java
  • Python 中 global、nonlocal的使用

    1.在学习python过程中很重要的一点需要记住:如果在函数内部定义了跟全局变量同名的变量,那么该变量将是局部变量,而全局变量的引用在该函数范围内将失效。

    x = 9
    def a():
        x = 10
        print x   #x在此处是局部变量。 
    a()    #10,
    x =9 
    def b():
        x +=1
        print x #x在此处是局部变量,全局变量的引用失效,所以会报变量在使用前没有赋值的错误。
    
    b()  #UnboundLocalError: local variable 'x' referenced before assignment

    2. 使用global关键字,将函数内部的变量声明为全局变量。

    X=88
    def a():
        global X
        X +=1
        print X
    
    a() #89
    X=88
    def b():
        global Y
        Y +=X
        print Y
    
    b() #UnboundLocalError: local variable 'state' referenced before assignment
    def b():
        global Y
        Y = 9
        print Y
    
    b() # 9

    即,全局变量也可以在函数内部声明。

    3.nonlocal关键字用来在函数或其他作用域中使用外层(非全局)变量 (python 3.0 添加)

    def make_counter():
        count = 0
        def counter():
            nonlocal count
            count += 1
            return count
        return counter

     nonlocal 必须声明在外一层的def中,其他任何地方将会报错。

  • 相关阅读:
    c学习第6天
    c学习第5天
    c学习第4天
    c学习第1天
    20171009/20171010/20171011
    20171010
    20171008
    20171007
    20171006
    matrix
  • 原文地址:https://www.cnblogs.com/kfx2007/p/3520252.html
Copyright © 2011-2022 走看看