python中函數重載和重寫


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) 

 

重寫

子類不想原封不動地繼承父類的方法,而是想作一定的修改,這就需要采用方法的重寫。方法重寫又稱方法覆蓋


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM