• python(10)——局部变量、全局变量


    局部变量:在局部生效的,出了这个变量的作用域,这个变量就失效了。函数内部定义的变量就是局部变量,函数运行完就释放该变量内存

    全局变量:在整个程序里面都生效的,在程序最前面定义的都是全局变量,全局变量如果要在函数中修改的话,需要加global关键字声明,如果是list、字典和集合的话,则不需要加global关键字,直接就可以修改 。

          尽量少用全局变量,原因:1、若全局变量被修改,影响较大;2、全局变量在python文件运行完才会释放,占内存

    name ='wangchan' #全局变量 每个函数里面都能用
    def get_name():
        global name     #说明要改的是全局变量(string和元组需要声明,list、dic不用)  尽量少用全局变量
        name ='hailong'  #局部变量--在函数内部定义的变量   只能在该函数中用
        print('函数里面的name:',name)
    
    def get_name2():
        print('get_name2:',name)
    get_name2()   #wangchan
    get_name()    #hailong
    print('函数外面的name:',name)   #hailong
    1 def test():
    2     global a
    3     a=5
    4 def test1():
    5     c=a+5
    6     return c
    7 
    8 res=test1()
    9 print(res)  #报错(NameError: name 'a' is not defined),因为test()函数没有执行,a还没有定义
     1  def test():
     2       global a
     3       a=5
     4  def test1():
     5       c=a+5
     6       return c
     7   
     8  test()   #test()执行过程中定义了全局变量a
     9 res=test1()
    10  print(res)  #10
  • 相关阅读:
    scheme中的fold-left和fold-right
    test
    2018.4.24-ml笔记(多元线性回归)
    2018.4.23-ml笔记(线性回归、梯度下降)
    springboot shiro开启注释
    Spring杂记BeanFactory之getBean方法
    docker搭建nginx+springboot集群
    springboot属性注入转化为对象
    mac下nginx搭建
    mybatis随笔五之Executor
  • 原文地址:https://www.cnblogs.com/HathawayLee/p/9623470.html
Copyright © 2020-2023  润新知