29讲课上例子 为什么全局变量作为实参传到函数里,函数结束参数有的变了,有的不变?
a = []b = 1
def fun1(a, b):
a.append(1)
b += 1
fun1(a, b)
print(a, b)
为什么同样是全局变量,a作为参数传进去在函数里操作了值就会改变,而b作为参数传进去了值就不变呢?
因为存储结构(列表,字典等等)是没有全局局部这一说的 因为a是a b不是b 因为列表是可变类型 外面的b是全局变量
里面的b是局部变量
wp231957 发表于 2020-3-20 10:44
因为a是a b不是b
b不是b我明白,为什么a不能是a呢? a = []
b = 1
def fun1(a, b):
a.append(1)
b += 1
print(b)
fun1(a, b)
print(a, b) 一个账号 发表于 2020-3-20 10:44
因为列表是可变类型
可变类型什么意思?b不是可变类型吗? xinhua202002 发表于 2020-3-20 10:46
外面的b是全局变量
里面的b是局部变量
b我了解了,a为什么会变呢? 风风魔王 发表于 2020-3-20 10:47
可变类型什么意思?b不是可变类型吗?
所有的存放数据类型(列表,字典)都是没有全局,局部这一说的 风风魔王 发表于 2020-3-20 10:46
b不是b我明白,为什么a不能是a呢?
a只是调用了方法,没有重新赋值,所以就会这样 风风魔王 发表于 2020-3-20 10:47
可变类型什么意思?b不是可变类型吗?
看看这个:https://www.cnblogs.com/lxy0/p/11356029.html#/cnblog/works/article/11356029 风风魔王 发表于 2020-3-20 10:47
可变类型什么意思?b不是可变类型吗?
int没有方法来改变他自己
页:
[1]