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()