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? 哪个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
不好意思啊亲们,照片没发上来,我就手动写了,这里的test2为啥是a=200啊?
在该段代码中,全局变量a的值被函数test1()修改为200并保持不变,直到程序结束。因此,当test2()调用时,它会输出全局变量a的当前值,即200。这是因为函数test1()中使用了关键字global声明,将a变量标记为全局变量,以便在其他函数中也能修改它的值。 歌者文明清理员 发表于 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: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:27
1. 在这段代码中,全局变量 a 被定义为 100,在函数 x() 中通过关键字 global 将其标记为全局变量,并在 ...
好哒,谢谢大神 大大大大力无限 发表于 2023-5-5 17:30
好哒,谢谢大神
不客气~
页:
[1]