代码如下:
#测试一:
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才对啊?
不知是我哪里理解得不对啊?
实验才是真理
理论上讲是这样的,因为python都是引用传递,在c++中,引用就相当于起别名,改变对象的值,被赋值的变量也会改变,但是在python中需要注意他是不是可变变量,如果是可变变量,那么一个变量改变,另一个也会改变,如果不是可变变量,则对象改变,接受变量是不会变得,还是原来的。回到本题,你给a的赋值是常量,常量是不可变变量,所以你改变了a得值,那么b得值是不会变得,还是原来的值。不懂的话可以继续问我
我的意思是能否给出 比较官方的文档,这样我也好理解,不知可否?中文或英文都行,希望能给出比较详细的链接,谢谢。我是B站上看到ppt里面这么说的,人家也没给出出处。