xc02570 发表于 2022-3-2 09:34:55

求助大佬一下,这两个有什么区别

发不了图片!!!


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


这两个输出结果是一样的,

isdkz 发表于 2022-3-2 09:40:05

加上 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]
查看完整版本: 求助大佬一下,这两个有什么区别