Python 函数内变量的作用域

发布时间:2022-05-06 09:51:00 人气:196 作者:多测师

  变量的作用域与其定义的方式有关:局部变量: 变量在函数内部定义,则变量的作用域在函数内部全局变量:变量在函数外部定义的,则变量的作用域是全局

  global:用来在函数或其他局部作用域中,声明全局变量。 (作用于全局)nonlocal:用来在函数或其他作用域中,声明外层(非全局)变量。(作用于局部)

  使用global情况:全局变量可以在函数内部访问,但是不能改变如果在函数内部想修改全局变量,可以用 global 来修饰变量局部变量只能在局部进行访问和修改。如果在函数外部,想访问局部变量,也可以用 global,将局部变量声明为全局变量使用nonlocal的情况:当里层局部,需要修改外层局部时,需要使用nonlocal。 (如嵌套函数)总结:global :函数中,需要修改全局变量时,用globalnonlocal:当里层局部,需要修改外层局部时,需要使用nonlocal。(局部调用局部,使用nonlocal)

  '''

  全局变量可以在函数内部访问,但是不能改变

  如果在函数内部想修改全局变量,可以用 global 来修饰变量

  '''

  a = 10 #全局变量

  def test1():

  b = 5 #局部变量

  print('局部访问全局变量 a:',a) #局部可以访问,全局变量

  #a +=1 #全局变量可以在函数内部访问,但是不能改变

  def test2():

  global a #全局声明

  a +=1

  print('内部修改全局变量 a:',a)

  def test3(): # global 只对当前函数起作用

  #global a

  a +=1

  print('teat3修改全局 a',a)

  '''

Python 函数内变量的作用域

  局部变量只能在局部进行访问和修改。

  如果在函数外部,想访问局部变量,也可以用 global,将局部变量声明为全局变量

  '''

  def test4():

  global b

  b = 4

  b+=1

  a = 21

  print('局部变量 b:',b)

  ## 使用nonlocal的情况

  #内嵌函数

  def test5():

  c = 2

  print('局部外层 c',c)

  def test6():

  d = 5

  print('局部里层 d',d)

  test6()

  # nonlocal

  c = 11

  def test7():

  c = 2 #声明外层(非全局)变量

  print('局部外层 c',c)

  def test8():

  d = 5

  print('局部里层 d',d)

  nonlocal c

  #global c

  c += 1 #当里层局部,需要修改外层局部时

  print('当里层局部,需要修改外层局部 C ',c)

  test8()

  以上内容为大家介绍了Python 函数内变量的作用域,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注多测师。https://www.e70w.com/xwzx/


返回列表
在线客服
联系方式

热线电话

17727591462

上班时间

周一到周五

二维码
线