Re: Python 能 有polymorphism 的functions 嗎

看板Programming作者 (Alien)時間16年前 (2009/08/20 14:48), 編輯推噓2(204)
留言6則, 2人參與, 最新討論串2/3 (看更多)
※ 引述《sorryChen (陳揚和)》之銘言: : 初學python 問了笨問題請多多包含 : 很多人覺得不用type checking python很好用 但我覺得挺危險的 : 而且應該不能有polymorphism.. 這樣類似的function作用在不同type的data : 時 就不能定義同名的function. 必須要在function中自己判別 : 然後寫 不同function 處裡不同type 的class.. : 這樣不是把type checking的責任交給programmer ... : 有前輩可以指引在python 中 正確的處理不同type類似function的方法嗎 : 或是應該看什麼文件 我想你大概搞錯了什麼叫 polymorphism 吧. 要因應不同的 type 去寫不同的處理這種做法 某程度就是有違 OOP 中的 polymorphism 的 思維了. 我猜你想說的只不過是 method overloading . 沒認真寫過 python 但 python 和 ruby 都是用所 謂 duck typing, 這種機制下, 應該能正常到做 method overloading 的效果吧 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 202.155.236.82

08/20 15:22, , 1F
overloading 是靜態的,ruby 確實沒有
08/20 15:22, 1F

08/20 17:31, , 2F
其實 overloading 定義上應該不一定要
08/20 17:31, 2F

08/20 17:32, , 3F
靜態吧? 可以 late binding 找到適合的
08/20 17:32, 3F

08/20 17:32, , 4F
overloaded method 應該也算吧?
08/20 17:32, 4F

08/20 17:41, , 5F
是可以,只是感覺就少掉很多 overloading
08/20 17:41, 5F

08/20 17:41, , 6F
本身的好處。不知道有語言內建這樣的嗎?
08/20 17:41, 6F
文章代碼(AID): #1AZF7Ehb (Programming)
文章代碼(AID): #1AZF7Ehb (Programming)