看板 Python 關於我們 聯絡資訊
※ 引述《adrianshum (Alien)》之銘言: : ※ 引述《KSJ (阿真)》之銘言: : : 自問自半答 : : 抱歉 後來又去看了原po的文章 發現是import module時的才是 : : 我自己也寫了一個KSJ.py測試 內容如下: : 如果真的是 pointer 的話, 那就不是 '變數 a 和 變數 b 放在同一位置'. ^^^^ : 而是 a 和 b 的值是一樣, 即是 a 和 b 指向的東西一樣而已. 謝謝觀念的指導 "放在"應該改成"指向" : a 和 b 所在的位置可以不一樣(也不會一樣, 不然再寫一句 a = 'x' 的話, : b 不就一起改變了嗎?) 的確:) 另外測試如下: KSJ.py -- a = "e " b = "e " c = "ee" print ( a is b ),id(a),id(b),id(c) #與之前一樣 a = 'QQ' #改變a的值 print id(a),id(b) #看看位置是否改變 print b #看看b值有沒有跟著變 a = "e " #把a值改回去 print id(a),id(b) #位置又如何呢?? -- >>> import KSJ True 12654208 12654208 10772704 #與之前一樣 a與b"位置"同 12654272 12654208 #換完數值之後 "位置" a的變了 e #顯然b值沒變 12654208 12654208 #奇怪的是 把a值改回去後指向的 "位置"跟b一樣 為什麼會說"奇怪" 原因是 在shell底下: >>> id('e ') 12654464 >>> id('e ') 12654368 >>> id('e ') 12654304 每次指向的位置都不一樣 這樣看來 object跟pointer是不一樣的 obejct應該怎麼解釋比較好呢??@_@a -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.63.199 ※ 編輯: KSJ 來自: 140.112.63.199 (03/20 19:39)
ykjiang:a = 'e' # 可看成為一內容 'e' 的 object 加上 a 標籤 03/20 20:38
ykjiang:Python 變數,跟 Java 物件的變數一樣,都只是個reference 03/20 20:39