Re: [問題] 新手請益
上篇測試如下:
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
每次指向的位置都不一樣
obejct應該怎麼解釋比較好呢??@_@a
"pointer to something real" 指向某些東西(我上面所說的"位置")
那個位置上有"值"
所以我在module裡寫:
KSJ.py
--
print id('e ')
print id('e ')
print id('e ')
--
結果是:
>>> import KSJ
12654144
12654144
12654144
所以我推論:
在module的執行過程裡
Python會"自動"設 某個變數 把'e '這個字串 存起來 並指向一個位置
在shell裡
>>>id('e ') 執行完就會把 "某個變數" 自動清除
所以每次都會有不一樣的id位置
推論這個有什麼用嗎orz...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.63.199
※ 編輯: KSJ 來自: 140.112.63.199 (03/20 19:39)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.63.199
推
03/20 20:52, , 1F
03/20 20:52, 1F
討論串 (同標題文章)
Python 近期熱門文章
PTT數位生活區 即時熱門文章