看板 Python 關於我們 聯絡資訊
目前因為興趣在自學,基礎不是很好。(以前沒程式經驗) 近期在做爬蟲的練習, 有重複賦值的需求,但發現用class包裝後, 卻只會拿到第一次的結果。 (雖然用別的方法可以解決) 但我自己本身想不通為什麼會這樣,也不知道該打什麼關鍵字去澄清這個。 所以想請各位前輩幫忙看看我的觀念哪裡錯誤了。 程式碼如下: a="a" b="b" class TEST(): def __init__(self,test1,test2): self.test1=test1 self.test2=test2 def test(): test1 = a test2 = b return TEST(test1,test2) test=test() print (test.test1) print (test.test2) a="A" b="B" print (test.test1) print (test.test2) ###Output### a b a b ############ 以上。 結果不是想像中的, a b A B 是不是我哪裡有天大的錯誤認知阿, 我需要重新複習哪一塊呢? 感謝各位。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.138.126.141 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1525838401.A.9D7.html
handsomeLin: 你建立instance的時候用的是a b兩個值,你改原先兩 05/09 12:10
handsomeLin: 個值當然不會造成改動,除非你用的是reference type 05/09 12:10
handsomeLin: 的東西 05/09 12:10
handsomeLin: btw, 其實這跟class一點關係都沒有 05/09 12:12
zxsaqw12: 對噎我剛剛發現把test=test()拿掉修改後就沒有這個問題 05/09 12:13
handsomeLin: 比如說 test1 = ‘a’ a = test1 之後你更動test1的 05/09 12:17
handsomeLin: 值 a 還是’a’ 你可能要了解一下 = 的意義 05/09 12:17
zxsaqw12: 感謝感謝 05/09 12:33
justoncetime: 「0為阿拉伯數字,O為英文字母」為啥不用Inconsolat 05/10 10:11
justoncetime: a之類的字體 ='= (考題範例) 05/10 10:12
justoncetime: 抱歉回錯了 Orz 必要可以刪除 05/10 10:13