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