在python中,具有重載的思想卻沒有重載的概念。所以有的人說python這麼語言並不支援函數重載,有的人說python有重載功能。實際上python程式設計中具有重載的目的缺無重載的行為,或者說是python並不需要重載!
python是一門動態語言,不需要宣告變數類型,函數中可以接受任何類型的參數也就無法根據參數類型來支援重載,python沒有必要去考慮參數的型別問題,這些都可以在函數內部判斷處理,並無必要在寫一個函數。 python 有多種傳參方式,預設參數/可變參數/可變關鍵字參數可以處理函數參數中參數可變的問題。
python3.4中增加的重載機制
在python3.4中提供有一個轉送機制來實作重載
from functools import singledispatch @singledispatch def function(obj): print('%r'%(obj)) @function.register(int) def function_int(obj): print('Integer: %d'%(obj)) @function.register(str) def function_int(obj): print('String: %s'%(obj)) @function.register(list) def function_list(obj): print('List: %r'%(obj)) if __name__ == "__main__": function(1) function('hello') function(range(3)) function(object)
以上是python有重載嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!