Skip to main content
 首页 » 编程设计

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

2025年05月04日18shanyou

你好,下面有两个相同函数的运行。他们都应该返回 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) 

编辑

请您参考如下方法:

第二个例子

txt += test() 

这可以分解为

txt = txt + test() 

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

因此,你实际上是在做

txt = '' + 'B' 

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

因此,对于

txt += test() 

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