zoukankan      html  css  js  c++  java
  • day15 Python全局变量和局部变量

    在子程序中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。

    全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序。
    当全局变量与局部变量同名时:
    在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用。
    name='charon'
    
    def change_name():
        print('我的名字',name)
    
    change_name()
    
    
    def change_name():
        name='pluto'
        print('我的名字',name)
    
    change_name()
    print(name)
    
    
    
    def change_name():
        global name
        name='pluto'
        print('我的名字',name)
    
    change_name()
    print(name)
    
    
    结果:
    我的名字 charon
    我的名字 pluto
    charon
    我的名字 pluto
    pluto
    

    能够把变量私有化的只能是函数

    global关键字

    name='charon'
    
    
    def change_name():
        global name#将最外层的name='charon'拿过来了,声明name就是那个全局变量
        name='pluto'#声明了修改上面拿过来的全局变量
        print('我的名字',name)
    
    def change01_name():
        print("我的名字",name)
    
    change_name()
    change01_name()
    
    结果:
    我的名字 pluto
    我的名字 pluto
    
    
    
    name='charon'
    
    
    
    
    
    def change_name():
     #   global name
     #   name='pluto'
        print('我的名字',name)
    
    def change01_name():
        print("我的名字",name)
    
    change_name()
    change01_name()
    
    
    结果:
    我的名字 charon
    我的名字 charon
    
    
    
    name='charon'
    
    
    
    
    
    def change_name():
        global name
        name='pluto'
        print('我的名字',name)
    
    def change01_name():
        print("我的名字",name)
    change01_name()
    change_name()
    
    结果:
    我的名字 charon
    我的名字 pluto
    

     规范:局部变量全小写,局部变量全大写 x

    # 如果函数中有global关键字,变量本质上就是全局的那个变量

    name = "刚娘"
    
    def weihou():
        name = "陈卓"
        def weiweihou():
            nonlocal name   # nonlocal,指定上一级变量,如果没有就继续往上直到找到为止
            name = "冷静"
    
        weiweihou()
        print(name)
    
    print(name)
    weihou()
    print(name)
     
    结果:
    刚娘 冷静 刚娘
    name = "刚娘"
    
    def weihou():
        name = "陈卓"
        def weiweihou():
            global name   #指定全局变量,name= "刚娘"
            name = "冷静"
        weiweihou()
        print(name)#weiweihou内改变的name变量是全局的,没有改陈卓那个变量,所以weihou调用的仍然是name = "陈卓"
    
    print(name)
    weihou()
    print(name)
    
    结果:
    刚娘
    陈卓
    冷静
    
  • 相关阅读:
    Ubuntu各种indicator汇总
    python 命令行参数获取
    python 内置方法的时间复杂度
    SkipList 跳表
    HBase Snapshot功能介绍
    HBase内部操作日志说明
    HBase参数配置及说明
    HBase 在HDFS 上的目录树
    第一章 重构,第一个案例
    shell来start、stop、restart应用程序模板
  • 原文地址:https://www.cnblogs.com/charon2/p/10372064.html
Copyright © 2011-2022 走看看