1 # 1、局部变量和全局变量 2 3 在子程序中定义的变量称为局部变量,在程序的一开始(代码前面没有缩进)定义的变量称为全局变量。 4 全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序。 5 当全局变量与局部变量同名时: 6 在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用。 7 8 """ 9 ###### 全局变量变量名大写 10 ###### 局部变量变量名小写 11 12 # 1、指定 全局变量——global 13 14 name = "121321213" # 全局变量 15 def change_name1(): 16 global name # global + 全局变量(name),声明,此位置的变量 就是最外面那个全局变量... 17 print(name) 18 name = 'newmet' # 经过在当前函数中声明全局变量,这一步...将全局变量name 重写,下面所运行的name变量值 均为重写后的值。 19 print('我的名字:', name) 20 21 def change_name2(): 22 # name = 'newmet.top' 23 print('我的名字:', name) # 由于先调用的change_name1函数,而在这个函数中,利用global(关键字)将全局变量name 24 # 重写,后续再执行或者调用别的函数,与全局变量name有关的,都会使用重写后的值。 25 26 change_name1() 27 change_name2() 28 print(name) 29 30 # 2、指定 上一级变量——nonlocal 31 32 ###### 函数可以嵌套函数 33 34 # 3、前向引用(函数即变量)
""" 作用域:起作用的范围. 局部变量:在方法体内部定义的变量 全局变量:定义在.py文件中的变量 """ # 全局变量 g1 = 100 def fun1(): # 可以读取全局变量 # print(g1) # 此时没有改变全局变量,而是创建了与全局变量名称相同的局部变量 # g1 = 200 # 声明全局变量 global g1 g1 = 200 print(g1) # 再声明全局变量 global g2 g2 = 300 # 局部变量 a = 1 # 不能将局部变量 改为全局变量 # global a def fun2(): a = 2 # global g1,g2 可以省略 print(g1,g2) fun1() fun2()