這篇文章運用簡單易懂的例子給大家介紹python支持重載嗎,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
金灣ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!
在一些靜態(tài)語言中,大都存在有一個重載的概念。這是在OOP(面對對象編程)中一個必不可少的一個行為。
所謂重載,就是多個相同函數(shù)名的函數(shù),根據(jù)傳入的參數(shù)個數(shù),參數(shù)類型而執(zhí)行不同的功能。所以函數(shù)重載實質(zhì)上是為了解決編程中參數(shù)可變不統(tǒng)一的問題。
python 中的重載
在python中,具有重載的思想?yún)s沒有重載的概念。所以有的人說python這門語言并不支持函數(shù)重載,有的人說python具有重載功能。實際上python編程中具有重載的目的,卻無重載的行為,或者說是python并不需要重載!
python是一門動態(tài)語言,不需要聲明變量類型,函數(shù)中可以接受任何類型的參數(shù)也就無法根據(jù)參數(shù)類型來支持重載,python沒有必要去考慮參數(shù)的類型問題,這些都可以在函數(shù)內(nèi)部判斷處理,并無必要去在寫一個函數(shù)。python 有多種傳參方式,默認參數(shù)/可變參數(shù)/可變關鍵字參數(shù)可以處理函數(shù)參數(shù)中參數(shù)可變的問題。
python3.4中增加的重載機制
在python3.4中提供有一個轉(zhuǎn)發(fā)機制來實現(xiàn)重載:
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支持重載嗎就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。