把一個變量a賦值給另一個變量b
a = 'ABC'
b = a
a = 'XYZ'
print b
其中步驟的解釋說到在第三步a = 'XYZ'時,重新創建了一個新的字符串'XYZ'由a去指向,而b停留在了原來的a的'ABC'處。 ? 請問為什么不是a = 'XYZ'時將其原指向的'ABC'改變為'XYZ'呢?
a = 'ABC'
b = a
a = 'XYZ'
print b
其中步驟的解釋說到在第三步a = 'XYZ'時,重新創建了一個新的字符串'XYZ'由a去指向,而b停留在了原來的a的'ABC'處。 ? 請問為什么不是a = 'XYZ'時將其原指向的'ABC'改變為'XYZ'呢?
2017-07-25
舉報
2017-07-25
你還沒理解重新賦值的概念吧,重新創建了一個新的字符串'XYZ'由a去指向就是說,新定義一個a = 'XYZ'(意思是說把XYZ的值賦給a),所以a = 'XYZ'和上面a = 'ABC'(把ABC值賦值給a)是沒有關聯的,所以不用去糾結。
2017-07-25
你的思路有點偏差:因為有了語句‘’b=a‘’, 所以b永遠指向a指向的內容,也就是,a去哪兒,b永遠跟著。
顯然不對。
2017-07-25
字符串‘ABC’保存在內存中,a 這個變量記錄的是‘ABC’在內存中的地址,當把a賦給b時,只是把 'ABC'的地址復制了一份給b, ?當a='XYZ'時, 是把‘XYZ’在內存中的地址賦值給了a, 取代了原來a保存的'ABC'的地址,而不是將a 指向的內存空間中的'ABC'內容改寫成了'XYZ'. ?這和c語言的指針是一毛一樣的。
2017-07-25
額,,,這個是因為python就這樣規定的,不然的話,又有人會問為什么不是在第三步a = 'XYZ'時,重新創建了一個新的字符串'XYZ'由a去指向,而b停留在了原來的a的'ABC'處?
2017-07-25
我們把a,b當做是人,'ABC','XYZ'當做是街
小a家地址ABC街
小a把房子租給小b
小a搬出去住,搬到XYZ街
問小b住在哪條街
(街道是不會變的,變的是住在里面的人。)