checkily 发表于 2018-1-27 00:44:34

第19课问题

def fun(var):
    var = 1314
    print(var, end='')

var = 520
fun(var)
print(var)


为什么输出的结果是1314520??两个都输出,并且是先输出局部变量的值,再输出全部变量的值?
我的理解是不是全部变量var的值与局部变量的值同时存在。然后print(var),实际上是print(局部var,全局var) ,是这样吗?真不好理解啊

像番茄加两个蛋 发表于 2018-1-27 07:35:21

因为你先fun(var)所以打印的是局部变量值,print(var)是打印全局变量值,两互换位置就会先全局后局部。

铁棍阿童木 发表于 2018-1-27 08:20:41

函数内部的局部变量var与外部的全局变量var虽是同一个标签,但是指向不同的内存地址。
页: [1]
查看完整版本: 第19课问题