#定义一个全局变量
m = 0;
def sum_1():
m = 13 #在函数内部创建了局部变量,绝非修改全局变量
n = 12
return m+n
def sum_2():
global m #声明m是一个全局变量
m = 13 #对全局变量m进行修改
n = 12
return m + n
def sum_3():
m = m+3 #在函数内部,如果要使用全部变量,必须先使用global声明,才可使用,否则报错,变量未定义
print(m)
sum_1()
print("全局变量m的值为%d"%m)
sum_2()
print("全局变量m的值为%d"%m)
sum_3()
"""
输出:
全局变量m的值为0
全局变量m的值为13
Traceback (most recent call last):
File "D:/Code/BaseCode/7-全局变量与局部变量的区别.py", line 19, in <module>
sum_3()
File "D:/Code/BaseCode/7-全局变量与局部变量的区别.py", line 13, in sum_3
m = m+3
UnboundLocalError: local variable 'm' referenced before assignment
"""
"""
全局变量与局部变量的区别:
1、在函数内部不能修改全部变量的引用:
在函数内部,可以通过全局变量的引用获取对应的数据,如果在函数内部对
全局变量使用赋值语句,相当于在函数内部定义了一个与全局变量同名的局部变量,
全局变量中的值并没有改变
2、如何在函数内部修改全局变量的值?
2.1 在函数内部,使用global关键字对全局变量进行声明,global关键字会告诉解释器
后面的变量是一个全局变量,绝非是一个局部变量;
2.2 在函数内部,如果要使用全部变量,必须先使用global声明,才可使用,否则报错,变量未定义
2.3 global声明之后,就可对全局变量进行修改
"""