gpt4 book ai didi

python - 为什么这两种情况不会返回相同的输出?

转载 作者:太空宇宙 更新时间:2023-11-04 08:34:40 25 4
gpt4 key购买 nike

你好,下面有两个相同函数的运行。他们都应该返回 AB 作为答案。但只有第一个这样做。全局变量是怎么回事?

txt=''

def test():
global txt
txt+='A'
print(txt)
return 'B'
tmp=test()
print('tmp: ', tmp)
txt+=tmp
print(txt)

第二次运行

txt=''

def test():
global txt
txt+='A'
print(txt)
return 'B'
print(txt)
txt+=test()
print(txt)

编辑

proof

最佳答案

第二个例子

txt += test()

这可以分解为

txt = txt + test()

在这种情况下,第一个 txt 不会更改为 A

因此,你实际上是在做

txt = '' + 'B'

对于第一个例子,txt变量在tmp创建的过程中已经被修改为A

因此,对于

txt += test()

你正在做 txt = 'A' + 'B'

关于python - 为什么这两种情况不会返回相同的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50190116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com