Re: [問題] 新手請益
※ 引述《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
03/20 20:38, 1F
→
03/20 20:39, , 2F
03/20 20:39, 2F
討論串 (同標題文章)