→ KSJ:看來是只有我了 囧... 11/15 17:45
→ mathfeel:每次show_append()之后跑help(show_append)。有甚麼發現 11/15 18:10
→ KSJ:在idle下 show_append( 之後就破梗了 x=會越來越長XD 11/15 18:18
→ sbrhsieh:Python 中除了 global ...,其實是沒有 definition 的 11/15 20:41
→ sbrhsieh:這個例子改寫成 C++,不也是一樣的行為嗎? 11/15 23:21
是指說 在runtime才"執行"產生函式嗎@@?
說來殘愧... 我在c與c++寫函式的時候還沒用過default值...
在我初學oop觀念時碰到的是python而非c++
c++的 private public的觀念 或是宣告class的方式
相較於python都較令我難理解
例如c++ . -> 在python下都是 . 理解能力的需求就不一樣
不過當然在c++的程式碼上 可讀性也許不夠 但理解後觀念會更清楚吧
我覺得還是該弄懂c++的類別觀念與寫法 (也許先略懂指標吧...
很多python相關的套件 說明文件還是在c++下較完整 例如PyQt
要了解而使用 以免像我對python def的誤用
推 mikapauli:不要創造會改變外部物件的函式,就沒這個問題了w 11/16 01:19
推 mikapauli:一般都會先做適當的copy說 11/16 01:22
其實我還蠻常用把cls instance當做變數在函式(別的class裡的)內傳來傳去
大部份是讀取需要的資料
修改資料的話就直接用method了 (classinstance.method("資料"))
我覺得在函式中修改instance時用instance的method 感覺還ok說
所以我覺得創造修改外部物件的函式應該是需要的
不知道這觀念對不對...
而我是以為class def __init__(self, arg = another_instance_create) 時
會重新創造 default arg裡的東西
所以中招了XD (如1F的文件的 important部份)
→ sbrhsieh:哎呀,我搞錯了。寫成 C++ 在寫法上沒有等效... 11/16 12:23
推 kdjf:到python3就很好理解了, 因為function也是class 11/17 09:43
我參考的原文書裡有提了許多 3與2不同的地方
print, string type, type & class, range 等等
不知道function的修改呢~
有空再來看看:)
(這讓我想到 剛學python就抓3下來因為print變成func而無法helloworld的一段往事)
不過我目前使用的相關套件在2下仍有比較好的支援度
所以3還可以再緩一下吧
(我目前是用python2.5較多)
推 darkgerm:推~寫得好清楚~ 11/19 02:14
※ 編輯: KSJ 來自: 180.176.140.46 (11/19 16:28)
推 mikapauli:真的需要的話當然OK阿,只是一般函式是沒有side effect的 11/20 21:09