我的問題的簡化版本:我想在python中編寫一個方法,它接受一個參數,一個字符串列表或一個包含字符串列表的自定義對象。然後返回列表的大小。該方法是專門爲用戶調用,所以我希望它對用戶來說很簡單(基本上我不希望兩個方法做同樣的事情,除了一行代碼,我不想導入非python標準庫)Python中的重載方法(解決方法)
我認識到重載是不可能的在Python中就像它是在Java中。
什麼是一個很好的方式去這個/什麼是標準的方式?我想到的解決方案是:
寫出兩種不同的方法。 用兩個參數和默認值編寫一個方法,檢查默認值是否相應移動。 用一個參數寫一個方法,檢查傳入什麼樣的對象,相應地移動(不完全確定是否可以進行此類型檢查)
從設計的角度來看,如果要處理的每種對象類型的語句從長遠來看似乎不是很好,但我沒有看到任何其他解決方案(除了單獨的方法)
謝謝你的建議!
您可以創建不同的對象和實施['__len__'](https://stackoverflow.com/questions/ 2481421/difference-between-len-and-len)以你想要的方式在他們中的每一箇中。 – alfasin
同意@alfasin,如果你可以依賴['duck typing'](https://en.wikipedia.org/wiki/Duck_typing),通常不需要重載。只需在你的課堂上實現'__len__',然後你傳入哪一種類型並不重要。 – AChampion