Re: [問題] 新手請益

看板Python作者 (阿真)時間15年前 (2009/03/20 19:26), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串10/16 (看更多)
※ 引述《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)

03/20 20:38, , 1F
a = 'e' # 可看成為一內容 'e' 的 object 加上 a 標籤
03/20 20:38, 1F

03/20 20:39, , 2F
Python 變數,跟 Java 物件的變數一樣,都只是個reference
03/20 20:39, 2F
文章代碼(AID): #19mtrmq6 (Python)
討論串 (同標題文章)
文章代碼(AID): #19mtrmq6 (Python)