代码如下:
#测试一:
a = 55
b = a
b = 9
print('id(a):'+str(id(a)))
print('id(b):'+str(id(b)))
print('a:'+str(a))
print('b:'+str(b))
output:
id(a):140718576206592
id(b):140718576205120
a:55
b:9 # 我的理解,应该a和b应该都是一样的都是9才对啊?
#测试二:
a = 55
b = a
a = 88
# b = 9
print('id(a):'+str(id(a)))
print('id(b):'+str(id(b)))
print('a:'+str(a))
print('b:'+str(b))
output:
id(a):140718576207648
id(b):140718576206592
a:88
b:55 # 我的理解,应该a和b应该都是一样的都是88才对啊?
不知是我哪里理解错了?
当然错了,如果这是对的,定义变量b又有什么意义?直接用a不就行了嘛!
a = b
是把 b 的值赋给 a
#测试一:
a = 55 # 这时候a已经不是a了,它已经变成55这个数
b = a # b=a a=55 所以b=55
b = 9 # b变成9,a不变
print('a:'+str(a))
print('b:'+str(b))
'''
>>> a:55
>>> b:9
'''
#测试二:
a = 55 # 这时候a已经不是a了,它已经变成55这个数
b = a # b=a a=55 所以b=55
a = 88 # a从55变成了88,b不变
print('a:'+str(a))
print('b:'+str(b))
'''
>>> a:88
>>> b:55
'''
# 总结,在b = a时,b就变成了a代表的数,并不代表a和b已经合二为一了,它们之后不会随着其中一个的变化而一起改变
'''
就好像小红受伤了,
身上有55道疤,
她很委屈,
于是在小花身上也划了55道疤,
后来小花痊愈了,
身上只有9道疤,
但是小红没有痊愈,
身上还是55道疤
'''
额,你写完b=a 有重新给B赋值,这已经不一样了啊。。。
这里面的 = 是赋值的意思;
a=1;表示将1赋给a(就好比把一等奖颁给 a );
b=a;表示把 a 里的值“1”,传递给b(发现奖状颁错了,就a把奖状给了b,b有了奖状,但是 a 就什么都没有了)
a=2;此时重新给a赋值2,(就相当于a获得了二等奖)
你可以这样理解,