zoukankan      html  css  js  c++  java
  • Python全局变量和局部变量相关知识点

    知识点一:

    #在函数外面定义的变量叫全局变量
    num = 100
    
    def AAA():
      '''
      如果在函数中直接修改全局变量,那么会产生异常
      如果真的需要修改,可以在函数中进行声明(前面加入global)
      '''
      global num
      print(num)
      num+=2 
      print(num)
    
    def BBB():
      print(num)
    
    AAA() #输出100和102
    #调用函数AAA()后全局变量num的值就真的改变了
    BBB() #输出102

    知识点二:

    '''
    如果全局变量是可变类型,比如列表或字典,那么就可以在函数中直接修改;
    而对于不可变类型,比如int,是不能直接在函数中修改的
    '''
    nums = [11,22,33]
    info = {"name":"xiaowang","age":24}
    
    def test():
      print("-"*20)
      # nums.append(44) #列表可以在函数中修改
      # print(nums)
      info['name'] = 'xiaoli'
      print(info)
    
    def test2():
      print("="*20)
      # print(nums)
      print(info)
    
    test()
    test2()
    #上述两次打印结果一样

    知识点三:

    #为了防止和局部变量名字相同,所以在全局变量前加一个g
    # g_a = 200
    a = 200
    
    def test3():
      print("-"*20)
      #a+=1 #这种情况下是直接修改a的值,但由于函数外的a是全局变量不能在函数内修改,所以会报错
    
      a = 100 
      '''
      注意一:这里可能是重新定义一个新的变量a,也有可能是修改a的值,但由于全局
      变量a不能修改,所以此处是重新定义了一个a;
      注意二:如果一个局部变量和全局变量名字相同,那么用的是局部变量
      '''
      print(a)
    
    def test4():
      print("="*20)
      print(a)
      #print(b) # name 'b' is not defined
      #变量的使用顺序是:局部变量->全局变量,如果两者都没有,程序就会报错
    
    test3() #打印100
    test4() #打印200
  • 相关阅读:
    Spring Security11、登录用户管理
    Spring Security10、账号登录并发控制
    win10下怎么打开notepad++多个实例
    gnu make
    es学习记录
    upj
    JConsole连接远程Java进程
    常用的几种成本核算方法
    SQL SERVER 统计字符串中某字符出现的次数
    centos误删除系统自带的python解决方法
  • 原文地址:https://www.cnblogs.com/yxtz271828/p/8975729.html
Copyright © 2011-2022 走看看