zoukankan      html  css  js  c++  java
  • python中的全局变量与局部变量

      全局变量与局部变量两者的本质区别就是在于作用域,全局变量即在整个程序中,任何地方都可以访问。而局部变量,试着在函数内部声明的变量,当函数运行结束时,局部变量就会被内存释放。

    例子:

    1 name='zs'
    2 def change():
    3      name='ls'
    4      change()
    5 print(name)   #输出为:’zs'  函数内的name是一个局部变量,函数运行结束即消失

    如果要修改全局变量,要在函数内部用关键字global声明。

    1 name='zs'
    2 def change():
    3     global name
    4     name='ls'
    5 change()
    6 print(name)     #输出为 ls   

    其实局部变量是有层次的,如果出现函数的嵌套,内层函数想调用外层的变量是,是不能用global声明的,因为外层的变量不叫全局变量。这时候如果想修改外层的变量,就得用到一个新的关键字:nonlocal  

    #强行使用global变量会报错,下面代码可以自己运行试试
    
    def fun():
        a = 3
    
        def fun2():
            global a
            a*= 2
            print(a)
    
        return fun2()
    fun()       

     如果使用nonlocal就可以完美解决:

     1 def fun():
     2     a = 3
     3 
     4     def fun2():
     5         nonlocal a
     6         a*= 2
     7         print(a)
     8 
     9     return fun2()
    10 fun()           #输出 6
  • 相关阅读:
    如何使用Apache设置404页面
    字符串函数积累
    isset() unset()
    set_exception_handler 自定义异常处理
    phpMailer中文说明[转]
    我的PHPMailer_v5.1 使用
    PHPMailer_v5.1 使用[转]
    PHP错误和异常处理
    几个 PHP 的“魔术常量”
    九宫格布局(demo16.03.14)
  • 原文地址:https://www.cnblogs.com/linshuhui/p/8977756.html
Copyright © 2011-2022 走看看