python有重載嗎

anonymity
發布: 2019-06-15 14:25:29
原創
4015 人瀏覽過

在python中,具有重載的思想卻沒有重載的概念。所以有的人說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中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板