求助大佬一下,这两个有什么区别
发不了图片!!!num = 100
def func1():
print(num)
def func2():
global num
num = 200
func1()
func2()
和:
num = 100
def func1():
print(num)
def func2():
num = 200
print(num)
func1()
func2()
这两个输出结果是一样的, 加上 global 全局声明对 num 赋值会改变全局变量 num,
而不加上 global 全局声明对 num 赋值并不会改变全局变量 num,
而是在函数内部定义了一个跟全局变量 num 同名的局部变量 num,
把代码改成下面这样你就能看出区别了:
num = 100
def func1():
print(num)
def func2():
global num
num = 200
func1()
func2()
print("global num: ", num) # 加上这句print("global num: ", num) # 加上这句
num = 100
def func1():
print(num)
def func2():
num = 200
print(num)
func1()
func2()
print("global num: ", num) # 加上这句print("global num: ", num) # 加上这句
页:
[1]