Python全局变量和局部变量相关知识点

Posted qjyyz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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





















































以上是关于Python全局变量和局部变量相关知识点的主要内容,如果未能解决你的问题,请参考以下文章

python函数中局部变量与全局变量遵守规则

Python--局部变量和全局变量

python3--函数(函数,全局变量和局部变量,递归函数)

python局部变量和全局变量作用域--021

Python全局变量和局部变量

Python20之全局变量和局部变量