• 全局变量和局部变量


    
    
    ********全局变量变量名全部大写
    ********局部变量变量名全部小写
    1
    #有声明局部变量(无global) 2 NAME='hhh' 3 def change_name(): 4 name='ccc' 5 print('change_name',name) 6 change_name() 7 print(NAME) 8 9 10 运行结果:change_name ccc 11      hhh
    12
    13 #无声明局部变量 14 NAME='hhh' 15 def change_name(): 16 print('change_name',NAME) 17 change_name() 18 print(NAME) 19 运行结果:change_name hhh 20      hhh
    
    

     


    1
    NAME='hhh' 2 def change_name(): 3 print(name) 4 name=2 5 change_name() 6 print(name)

    运行结果:error 因为print(name)中需要调用局部变量 但局部变量在此时并没有被创建
    1 NAME=['ah','bh']
    2 def xxchange():
    3   name='xxxx'#创建局部变量
    4   global NAME#声明全局变量
    5   print(name)
    6 xxchange()
    运行结果:error 创建局部变量时应该在函数内部使用局部变量 但是声明global时 又应该使用全局变量 所以报错
    #有global
    1
    NAME='hhh' 2 def change_name(): 3 global NAME #这里的name为全局变量 4 NAME='ccc'#修改全局变量为ccc 5 print(NAME) 6 change_name() 7 print(NAME)

    运行结果:ccc

         ccc

    注:如果函数的内容中无global关键字,优先读取局部变量并且能读取全局变量 无法给全局变量重新赋值 name=‘hhh’

      但是对于可变类型(不可变类型:数字 字符串 元组;列表、字典可变),可以对内部元素进行操作

    如果函数中有global关键字,此变量本质上就是全局变量,可读取可修改。

    1 NAME=['ahah','bhbh']
    2 def xxname():
    3     NAME.append('python')
    4     print('一二三四',NAME)
    5 xxname()

    运行结果:一二三四 ['ahah','bhbh','python']

  • 相关阅读:
    ubuntu 构建Xilinx交叉编译环境
    codeSourcery交叉编译环境
    ZYNQ学习之路1. Linux最小系统构建
    静态代码块的执行顺序
    storm maven-shade-plugin
    spring 3.2.7 applicationContext.xml
    ZipUtils
    成员内部类
    jetty jndi数据源
    applicationContext中普通数据源不用jndi数据源
  • 原文地址:https://www.cnblogs.com/gl-gl/p/9056910.html
Copyright © 2020-2023  润新知