Python FAQ 001 局部变量 & 全局变量相关问题
本帖最后由 qiuyouzhi 于 2020-3-12 08:34 编辑Python FAQ 001
问题:
var = ' Hi '
def fun1():
global var
var = ' Baby '
return fun2(var)
def fun2(var):
var += 'I love you'
fun3(var)
return var
def fun3(var):
var = ' 小甲鱼 '
print(fun1())
为什么打印出来的是 Baby I love you
(出自:https://fishc.com.cn/forum.php?mod=viewthread&tid=157114&page=1#pid4379822)
我的解答:
虽然fun1里面写了global,可它对var的操作
却是=,Python就认为它是一个局部变量
又因为它的返回值是fun2,对函数进行了一次拼接,所以它对局部变量的操作
是有效的。
fun3和fun1一样,都是局部变量。
欢迎来找错~~~ 你错了,fun2() 不能享有特权:
Python 3.8.1 (tags/v3.8.1:1b293b6, Dec 18 2019, 23:11:46) on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>>
==================== RESTART: C:\Users\Angel\Desktop\test.py ===================
Baby I love you
>>> var
' Baby '
>>> Baby I love you
页:
[1]