2009-07-30 69 views
1

假設你正在用動態語言(Python等)做一個計算器,並且你有一個add方法。鴨子打字 - 什麼時候你需要一個具體的類型?

def Add(x, y) 
    print x + y 

現在,如果您要傳入的數字是錯誤的,那麼您需要進行一些數據類型檢查。

Duck是否像上面的例子一樣輸入對象而不是參數?

任何人都可以進一步解釋嗎?

編輯

通過對象我的意思是:

Person.Quack() 
Duck.Quack() 

由於沒有什麼被傳遞到方法的照顧。

回答

2

鴨子打字不關心你正在使用的物體是什麼,只要它們支持必要的操作。所以如果+是字符串連接,那麼將字符串傳遞給Add就沒問題。如果日期支持+操作,那麼通過日期也不錯。

+0

+1示例Add方法將很好地用於字符串。關於`+`,許多類型都可以工作。 – 2009-07-30 18:54:17

相關問題