經驗是一把兩面刃

更新於 2022/02/11閱讀時間約 6 分鐘
經驗是一把兩面刃。有了過去的經驗,在學新的東西時,可以觸類旁通,很快的進入狀況;而在面對從未遇過的狀況時,也可以快速做出反應,以爭取時效,或者規避危險。學會騎腳踏車後,再來學騎摩托車,可以很快就學會,這是經驗的正面效果。那經驗的負面效果呢?「一朝被蛇咬,十年怕井繩」就是個典型的例子。或許是生存的本能,我們總是會因為不好的經驗,而去規避,不願接受挑戰,最後躲在舒適圈不肯出來。另一種經驗的負面效果是,太相信過去成功的經驗,導致墨守成規,僵固於過去的模式,而以錯誤的或過時的方式,來應對處理全新的狀況,最後以失敗收場。在商業上,這種例子屢見不鮮;在程式語言的學習上,也是一樣。過去學習過的程式語言,可以讓你在學習新的語言時,很快就能進入狀況,畢竟很多觀念跟結構是共通的,例如條件判斷、迴圈、data type、class、object... 但是,每個語言也有其不同的設計,稍微不注意,就很容易用過去學過的語言來理解,而忽略了其內涵的不同之處,導致多走了許多冤枉路。
在Python中,所有東西都是物件。執行程式碼a = 5,會建立5這個物件,然後給a一個reference,這個reference就是告訴a,它的值放在記憶體的哪個位置,要用時,就到那裡去拿。
看到這裡,很直覺的反應是:這不就是C裡頭的pointer嗎?!然後就沒再多想了。
immutable object如int、float、complex、string、tuple等型態的object,他們的值是固定的,不能改變;而mutable object如list、dict、set等型態的object,他們的值是可以改變的。
昏頭了!什麼immutable、mutable?為什麼不說unchangeable、changeable?意思不都一樣嗎?查了網路上的字典,都還是同義字咧!有的字典還乾脆就說immutable、mutable是程式語言用語,然後解釋了一番,可我的疑問是,為什麼當初要選這兩個字來用,而不是用另外有同樣意思的字眼?好吧!這可能很難考證了,畢竟新的東西不斷出現,總得有個字眼來指稱,有時候還真沒什麼太大道理可言,就好像ball point pen翻成中文時,硬是叫成「原子筆」,只因那時「原子」兩個字很潮、很厲害。還有啊,讓人充滿遐想的「比基尼」,其實是因為剛推出時,美國正好在「比基尼環礁」進行核試爆,取這個名字容易吸引人,於是就這麼用了。所以啊,immutable就immutable;mutable就mutable,反正就是那意思,現在不也一堆東西叫「量子」什麼東東的,也沒什麼道理啊!還有還有,現在電動車越來越普及,未來燃油車應該會走入歷史。現在用來加速的那個,我們管它叫「油門」。可是電動車用的是電,不是油。那你說那個用來加速的,該叫什麼?好像大家還是叫它「油門」。未來的某一天,或許會有人開始探究,車子明明就沒有用油當燃料,為什麼要叫「油門」咧?!
immutable object的值不能改變,如果寫a = 5,表示a的型態是int,所以值不能改變。可是可以接著寫a = 6,這時候a的值就從5變成6了,這樣怎能說是immutable?原來,執行a = 5時,會給a一個reference指向5,再執行a = 6時,也就只是給a另一個reference指向6而已。看起來挺合乎邏輯的,不是嗎?immutable這觀念是懂了,可又覺得有點彆扭,但也說不出哪裡不對勁。
倪匡筆下的衛斯理在面對問題時,常常會有那種似乎彷彿好像抓住了什麼解決之道,但又說不出個所以然來的情形。然後,在後來的某一瞬間,一切都豁然開朗,答案清晰可見。其實這種現象倒也不是小說中才會出現,現實生活中也常見。就在和巢狀list的複製問題奮戰的時候,突然間,就像剔掉塞在牙縫中很久的菜渣一樣,一陣輕鬆,神清氣爽,immutable算是真正搞懂了。原來,immutable object指的是像5、6這些數字,不是變數a,在許多解釋immutable、mutable觀念的文章中,其實都有提到,只是並沒有特別去強調而已。先前因為把reference類比為pointer,所以沒去特別注意,才導致後來在巢狀list的複製問題上卡關。
在其他需要宣告變數的程式語言,例如C、Fortran、VB中,宣告變數,例如int a,是讓系統配置一塊記憶體給a這個變數。這塊記憶體有多大呢?就int這麼大!同樣是整數,配置的記憶體大小,不同的程式語言在不同的作業系統上,可能都不同。但無論如何,反正就是會照程式語言的規定給就是了。那變數a要這塊記憶體做什麼?就把它當倉庫而已!這倉庫裡頭放的,就是a的值。不過雖然是倉庫,也不能什麼東西都塞進去。既然當初宣告時,就已經表明,倉庫裡頭是要擺放int這個型態的數字,那做人要甘願,更何況是白紙黑字寫下的宣告,這個倉庫裡頭,就只會放int型態的數字。換句話說,a的值,就一定是int型態的數字。當然囉,就像房子會有地址一樣,a的倉庫,也就是配置的記憶體,也有地址,這樣才知道東西存放的確切地點,而pointer指的就是這個地址。當要改變a的值的時候,直接把新的值放到a的倉庫就好了,a還是a,地址也沒變。所以啊,其實a和它的倉庫的地址是一體兩面,只是在寫程式的時候,用a比較簡單、方便,畢竟倉庫的地址可是一大串令人頭皮發麻的數字。上網時,我們會用網址,而不是用ip,也是同樣的道理。
說來有趣,address這個字,就是「地址」的意思。可是在資訊領域,卻會翻成「位址」。「位址」兩個字感覺就是比較有學問一點,不過仔細想想,這樣翻還挺有道理的,畢竟如果是要指稱在記憶體中的位置,「位址」還是比較傳神一點。
就是因為根據以前的經驗,宣告變數以後,例如int a,就有了a這個型態是int的變數,不管是後來寫a = 5,或直接把5放到a的記憶體倉庫中,乃至於複製a的值給其他變數,只要有a在心中就可以了,pointer其實可以不用太在意,畢竟沒那玩意兒的Fortran、VB也活得好好的,不是嗎?所以啊,在Python裡頭看到a = 5時,自然而然的,心中也就只有a了。至於reference,想當然耳,就是pointer嘛!也就也沒太在意了。這樣子的認知,其實也沒什麼太大的問題產生,等到面對list這種mutable object時,才覺得這邊也卡卡的,那邊也卡卡的,直到徹底拋棄pointer,重新認識reference為止。在武俠世界中,很多絕世武功,都必須散盡全身功力,徹底告別以前苦練的成果,才能練成,或許也就是這麼回事吧!
為什麼會看到廣告
avatar-img
15會員
130內容數
寫點東西自娛娛人
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
ysf的沙龍 的其他內容
comprehension應該可說是Python的絕學之一吧。不過既然是絕學,總是會有讓人容易在運氣時一個不小心走錯經脈的地方。現在我需要一個二維的list,利用comprehension來造一個,應該是再好不過的選擇。只是這地方,就是個容易出錯的地方。
蝦蜜?!Python沒有內建array?!剛發現這件事時,還真的有點傻眼,怎麼會沒有array這麼好用的data type呢?
寫程式時,很傷腦筋的一件事,就是變數的名稱該怎麼取。其實變數名稱隨便取,並不會影響程式的正確性,但對程式的可讀性,以及後續的維護,那可就影響深遠了。
第一個要拿來練功的題目是:Game of Life。
呼!寫文章真是比寫程式還要燒腦、燒時間。一開始是沒想到要寫這「隨筆」的,是有天程式寫著寫著,腦海中就冒出這麼個想法來,要把跟Python交往的過程寫下來。
在看官網文件時,看到一份文件:PEP 8 -- Style Guide for Python Code。這份文件是關於Python程式碼風格的指引和建議。
comprehension應該可說是Python的絕學之一吧。不過既然是絕學,總是會有讓人容易在運氣時一個不小心走錯經脈的地方。現在我需要一個二維的list,利用comprehension來造一個,應該是再好不過的選擇。只是這地方,就是個容易出錯的地方。
蝦蜜?!Python沒有內建array?!剛發現這件事時,還真的有點傻眼,怎麼會沒有array這麼好用的data type呢?
寫程式時,很傷腦筋的一件事,就是變數的名稱該怎麼取。其實變數名稱隨便取,並不會影響程式的正確性,但對程式的可讀性,以及後續的維護,那可就影響深遠了。
第一個要拿來練功的題目是:Game of Life。
呼!寫文章真是比寫程式還要燒腦、燒時間。一開始是沒想到要寫這「隨筆」的,是有天程式寫著寫著,腦海中就冒出這麼個想法來,要把跟Python交往的過程寫下來。
在看官網文件時,看到一份文件:PEP 8 -- Style Guide for Python Code。這份文件是關於Python程式碼風格的指引和建議。
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
距離現在已經有一段時間了,就算是到今天都不是很確定那一個晚上在那個地點發生的事情到底是真實還是在做夢⋯畢竟那也是目前為止唯一一次感覺比較超自然的現象。 依稀記得還是學生時期的一個夜晚躺在宿舍床上準備就寢,就突然間全身都無法動彈!是那種被牽制著想動卻無法動也無法發出聲音的無助感⋯明明可以看到同學
Thumbnail
$MU FY2Q24 財報結果營收優於我的預期 2% 至 58 億美元,稀釋後 EPS 0.42 美元也優於我的預期 0.39 美元,主要是因為 DRAM、NAND Flash 兩大產品線無論是在 YoY 的基礎或是 QoQ 的基礎上皆非常大幅加速,出貨量 Q 的變動並不大,營收加速全部主要是平均單
我們的人生經驗可作為前進的天使或進步的障礙,視乎我們的解讀與運用。透過《底層邏輯》中的“假設-驗證-結論-調整”策略,我們學會從失敗中成長。保持開放和空杯心態,從每次經歷吸取教訓。在創意寫作裡,這些經驗轉化為治療自我與啟發他人的力量。
Thumbnail
🍀🍀🍀fumi老師:❤️❤️❤️ 🥰🥰🥰在閱讀學生🧑‍🎓在靈氣療癒讀取的靈氣的祝福——每一步的踏出都是智慧經驗的累積,而這過程中所經歷的掙扎與挑戰也成為了美好的回憶。所走過的道路充滿了各種風味,有喜悅、痛苦、成長和領悟,這些經歷都在塑造我們的人生。 💗💗💗當轉向內在,發現自
Thumbnail
已經是秋天了,但是,今天的天氣還是有點熱,這就是氣象上所說的秋老虎。於是,將保溫瓶、小扇子、陽傘等,放入背包裡。 戴上口罩,將耳掛式耳機戴在耳後,連接好藍芽,按下我要聽的音樂。到樓下穿起步鞋,推起裝著包裹的菜籃車,出門到郵局去寄國際包裹,給遠在美國的母親。 以前,寄國際包裹是拿單子書寫。現在,是用手
Thumbnail
如果你有緣看到這篇文章,也能看懂我在說什麼,我真的希望,你能因而種下覺醒的種子,從內心深處感悟到,覺醒真的是除一切苦和重生的起點。 當你不敢面對自己,不敢醒來,你擁有再多名利人氣,吃再多抗憂鬱藥,你的苦仍會像烏黑的柏油垢,覆蓋著你的清淨心...
Thumbnail
面對感情,你是個死心踏地、情願付出還是不拖泥帶水的理智派?今天帶來一則有趣的心理測驗,簡單一道題目,就可以分析出你的癡情程度,趕緊下滑測驗看看! A、捲紙 B、溼巾紙 C、面巾紙 D、隨手一張紙 . . . . . . 今彩539養牌
2021/08/02,是我失戀的第二天。哭到衛生紙用掉了大半包,一靜下來那些和林衣的幸福畫面就這樣一一呈現在眼前,歷歷在目,好像我一轉頭又能看到他開心地衝著我大笑。抱著哭到發抖的自己,安慰自己一切都會好起來的。哪有世界不下雨呢? 我覺得我在他心裡一定也有著某個特別的位置是給我的,因此我不急著向他表達
I. 手指放在鍵盤上準備振筆疾書,我忍不住問自己為什麼要打下這一個關於文字創作的面試經驗,除了某些我想要分享的醒悟之外,我認為每個人某種程度都在創作,無論是創作字面上的文字視覺音樂作品、生產論文、製造溝通橋樑、處理文書行政、制定法律、穩定金融、發揮影響力、瞎起鬨、挑撥離間,一切一切都可以被視為創作,
Thumbnail
1、你們有125個共同好友,是否要添加對方為好友。 2、我一直想從你的窗子裡看月亮。 3、原諒我孤陋寡聞,不知先生心裡一直有人。 4、因為喜歡你所以想藉著你的光去看看從未見過的世界。 5、願你熬過萬丈孤獨,藏的下心辰大海。 6、少年心動是仲夏夜的荒原,割不完燒不盡。長風一吹,野草就連了天。 7、我好
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
距離現在已經有一段時間了,就算是到今天都不是很確定那一個晚上在那個地點發生的事情到底是真實還是在做夢⋯畢竟那也是目前為止唯一一次感覺比較超自然的現象。 依稀記得還是學生時期的一個夜晚躺在宿舍床上準備就寢,就突然間全身都無法動彈!是那種被牽制著想動卻無法動也無法發出聲音的無助感⋯明明可以看到同學
Thumbnail
$MU FY2Q24 財報結果營收優於我的預期 2% 至 58 億美元,稀釋後 EPS 0.42 美元也優於我的預期 0.39 美元,主要是因為 DRAM、NAND Flash 兩大產品線無論是在 YoY 的基礎或是 QoQ 的基礎上皆非常大幅加速,出貨量 Q 的變動並不大,營收加速全部主要是平均單
我們的人生經驗可作為前進的天使或進步的障礙,視乎我們的解讀與運用。透過《底層邏輯》中的“假設-驗證-結論-調整”策略,我們學會從失敗中成長。保持開放和空杯心態,從每次經歷吸取教訓。在創意寫作裡,這些經驗轉化為治療自我與啟發他人的力量。
Thumbnail
🍀🍀🍀fumi老師:❤️❤️❤️ 🥰🥰🥰在閱讀學生🧑‍🎓在靈氣療癒讀取的靈氣的祝福——每一步的踏出都是智慧經驗的累積,而這過程中所經歷的掙扎與挑戰也成為了美好的回憶。所走過的道路充滿了各種風味,有喜悅、痛苦、成長和領悟,這些經歷都在塑造我們的人生。 💗💗💗當轉向內在,發現自
Thumbnail
已經是秋天了,但是,今天的天氣還是有點熱,這就是氣象上所說的秋老虎。於是,將保溫瓶、小扇子、陽傘等,放入背包裡。 戴上口罩,將耳掛式耳機戴在耳後,連接好藍芽,按下我要聽的音樂。到樓下穿起步鞋,推起裝著包裹的菜籃車,出門到郵局去寄國際包裹,給遠在美國的母親。 以前,寄國際包裹是拿單子書寫。現在,是用手
Thumbnail
如果你有緣看到這篇文章,也能看懂我在說什麼,我真的希望,你能因而種下覺醒的種子,從內心深處感悟到,覺醒真的是除一切苦和重生的起點。 當你不敢面對自己,不敢醒來,你擁有再多名利人氣,吃再多抗憂鬱藥,你的苦仍會像烏黑的柏油垢,覆蓋著你的清淨心...
Thumbnail
面對感情,你是個死心踏地、情願付出還是不拖泥帶水的理智派?今天帶來一則有趣的心理測驗,簡單一道題目,就可以分析出你的癡情程度,趕緊下滑測驗看看! A、捲紙 B、溼巾紙 C、面巾紙 D、隨手一張紙 . . . . . . 今彩539養牌
2021/08/02,是我失戀的第二天。哭到衛生紙用掉了大半包,一靜下來那些和林衣的幸福畫面就這樣一一呈現在眼前,歷歷在目,好像我一轉頭又能看到他開心地衝著我大笑。抱著哭到發抖的自己,安慰自己一切都會好起來的。哪有世界不下雨呢? 我覺得我在他心裡一定也有著某個特別的位置是給我的,因此我不急著向他表達
I. 手指放在鍵盤上準備振筆疾書,我忍不住問自己為什麼要打下這一個關於文字創作的面試經驗,除了某些我想要分享的醒悟之外,我認為每個人某種程度都在創作,無論是創作字面上的文字視覺音樂作品、生產論文、製造溝通橋樑、處理文書行政、制定法律、穩定金融、發揮影響力、瞎起鬨、挑撥離間,一切一切都可以被視為創作,
Thumbnail
1、你們有125個共同好友,是否要添加對方為好友。 2、我一直想從你的窗子裡看月亮。 3、原諒我孤陋寡聞,不知先生心裡一直有人。 4、因為喜歡你所以想藉著你的光去看看從未見過的世界。 5、願你熬過萬丈孤獨,藏的下心辰大海。 6、少年心動是仲夏夜的荒原,割不完燒不盡。長風一吹,野草就連了天。 7、我好