大大大大力无限 发表于 2023-5-5 16:45:47

python

https://img-blog.csdnimg.cn/20200402113556921.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTM5MzA5NA==,size_16,color_FFFFFF,t_70


请问一下大神,为啥test2打印出来是a=200?

歌者文明清理员 发表于 2023-5-5 16:46:34

哪个Test2?

isdkz 发表于 2023-5-5 16:46:37

代码或截图呢?

大大大大力无限 发表于 2023-5-5 17:02:15

a=100
def test1():
    global a
    print('...test1...修改前..a=%d'%a)
    a=200
    print('...test1...修改后..a=%d'%a)

   
def test2():
    print('...test3...a=%d'%a)

   
test1()
...test1...修改前..a=100
...test1...修改后..a=200
test2()
...test3...a=200
不好意思啊亲们,照片没发上来,我就手动写了,这里的test2为啥是a=200啊?

歌者文明清理员 发表于 2023-5-5 17:03:25

在该段代码中,全局变量a的值被函数test1()修改为200并保持不变,直到程序结束。因此,当test2()调用时,它会输出全局变量a的当前值,即200。这是因为函数test1()中使用了关键字global声明,将a变量标记为全局变量,以便在其他函数中也能修改它的值。

大大大大力无限 发表于 2023-5-5 17:25:19

歌者文明清理员 发表于 2023-5-5 17:03
在该段代码中,全局变量a的值被函数test1()修改为200并保持不变,直到程序结束。因此,当test2()调用时,它 ...

1,哦哦那大神帮我看下这个代码
a=100
def x():
    global a
    a=200
    print('修改前a=%d'%a)
    a=300
    print('修改后a=%d'%a)

   
def y():
    print('a=%d'%a)

   
x()
修改前a=200
修改后a=300
y()
a=300
这里全局变量100为啥就被修改为300了呢,是按照最终的结果吗?
2,在这个代码当中执行的逻辑是先访问了全局变量,然后在test1中被修改为200,然后调用test2的时候用到全局变量,但是是修改后的是这个意思吗?
a=100
def test1():
    global a
    print('...test1...修改前..a=%d'%a)
    a=200
    print('...test1...修改后..a=%d'%a)

   
def test2():
    print('...test3...a=%d'%a)

   
test1()
...test1...修改前..a=100
...test1...修改后..a=200
test2()
...test3...a=200

歌者文明清理员 发表于 2023-5-5 17:27:31

大大大大力无限 发表于 2023-5-5 17:25
1,哦哦那大神帮我看下这个代码
a=100
def x():


1. 在这段代码中,全局变量 a 被定义为 100,在函数 x() 中通过关键字 global 将其标记为全局变量,并在函数中修改了该变量的值为 200,然后再将其修改为 300。因此,当调用函数 y() 输出全局变量 a 的值时,输出的是最终的结果,即 a=300。

2. 是的,这段代码先访问了全局变量 a,然后在函数 test1() 中使用了 global a 将其标记为全局变量,并对其进行了修改。因此,当函数 test2() 访问全局变量 a 时,它获取的是最新的全局变量 a,即被 test1() 修改后的值 200。这就是 Python 中使用 global 声明的变量都是同一个变量的原因。

大大大大力无限 发表于 2023-5-5 17:30:50

歌者文明清理员 发表于 2023-5-5 17:27
1. 在这段代码中,全局变量 a 被定义为 100,在函数 x() 中通过关键字 global 将其标记为全局变量,并在 ...

好哒,谢谢大神

歌者文明清理员 发表于 2023-5-5 22:11:38

大大大大力无限 发表于 2023-5-5 17:30
好哒,谢谢大神

不客气~
页: [1]
查看完整版本: python