作者adrianshum (Alien)
看板Programming
標題Re: Python 能 有polymorphism 的functions 嗎
時間Thu Aug 20 14:48:45 2009
※ 引述《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
推 godfat:overloading 是靜態的,ruby 確實沒有 220.128.121.85 08/20 15:22
→ adrianshum:其實 overloading 定義上應該不一定要 202.155.236.82 08/20 17:31
→ adrianshum:靜態吧? 可以 late binding 找到適合的 202.155.236.82 08/20 17:32
→ adrianshum:overloaded method 應該也算吧? 202.155.236.82 08/20 17:32
推 godfat:是可以,只是感覺就少掉很多 overloading 220.128.121.85 08/20 17:41
→ godfat:本身的好處。不知道有語言內建這樣的嗎? 220.128.121.85 08/20 17:41