[問題] 整數和字串literal的問題

看板Python作者 (橘白Cat)時間8年前 (2017/06/25 10:58), 8年前編輯推噓0(006)
留言6則, 3人參與, 最新討論串1/1
在看python入門書實作時有個問題一直很納悶 a = 6 b = "string" c = a.__str__() d = b.__str__() e = 6.__str__() f = "string".__str__() g = int(6).__str__() 程式碼如上 我的問題如下 1.為何平平都是字面值literal 字串字面值可以有__str__()方法 而整數字面值卻沒有 就如同變數e會出錯 變數f卻沒有 我的想法是整數字面值沒有構造一個int物件 而字串字面值有構造一個str物件 然後這物件繼承object這個原生物件的__str__()方法並且覆寫它 這樣的觀念是對的嗎 如果對的話 那麼為什麼整數字面值卻沒有構造呢 可以有完整的解釋嗎 講一下python內部的實作細節 2.當把整數或字串賦值給變數a和b 這時候不管是整數還是字串 都有構造int及str物件的參考給變數a和b 所以可以調用其物件的__str__()方法 這樣是對的觀念嗎 3.使用int函數是不是就等同於構造了int物件 所以如同變數g就不會有錯誤 ----- Sent from JPTT on my Asus ASUS_Z00UD. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 27.242.43.210 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1498359507.A.F65.html

06/25 11:06, , 1F
(6).__str__
06/25 11:06, 1F

06/25 11:07, , 2F
python認為那是小數點
06/25 11:07, 2F

06/25 12:10, , 3F
那這樣不會誤認為長度為1的tuple嗎
06/25 12:10, 3F

06/25 12:15, , 4F
還是說(6,)這樣才會是tuple (6)只是單純的整數
06/25 12:15, 4F

06/25 12:23, , 5F
Tuple 的關鍵是逗號, 括弧只是 delimiter
06/25 12:23, 5F
ok已明瞭 ※ 編輯: LessonWang (27.242.43.210), 06/25/2017 12:28:47

06/26 11:36, , 6F
a = 1, 2, 3
06/26 11:36, 6F
文章代碼(AID): #1PJoRJzb (Python)