創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買多久送多久,劃算不套路!

這篇文章運(yùn)用簡單易懂的例子給大家介紹python支持重載嗎,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
在一些靜態(tài)語言中,大都存在有一個(gè)重載的概念。這是在OOP(面對(duì)對(duì)象編程)中一個(gè)必不可少的一個(gè)行為。
所謂重載,就是多個(gè)相同函數(shù)名的函數(shù),根據(jù)傳入的參數(shù)個(gè)數(shù),參數(shù)類型而執(zhí)行不同的功能。所以函數(shù)重載實(shí)質(zhì)上是為了解決編程中參數(shù)可變不統(tǒng)一的問題。
python 中的重載
在python中,具有重載的思想?yún)s沒有重載的概念。所以有的人說python這門語言并不支持函數(shù)重載,有的人說python具有重載功能。實(shí)際上python編程中具有重載的目的,卻無重載的行為,或者說是python并不需要重載!
python是一門動(dòng)態(tài)語言,不需要聲明變量類型,函數(shù)中可以接受任何類型的參數(shù)也就無法根據(jù)參數(shù)類型來支持重載,python沒有必要去考慮參數(shù)的類型問題,這些都可以在函數(shù)內(nèi)部判斷處理,并無必要去在寫一個(gè)函數(shù)。python 有多種傳參方式,默認(rèn)參數(shù)/可變參數(shù)/可變關(guān)鍵字參數(shù)可以處理函數(shù)參數(shù)中參數(shù)可變的問題。
python3.4中增加的重載機(jī)制
在python3.4中提供有一個(gè)轉(zhuǎn)發(fā)機(jī)制來實(shí)現(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)關(guān)于python支持重載嗎就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
文章標(biāo)題:python支持重載嗎-創(chuàng)新互聯(lián)
URL標(biāo)題:http://chinadenli.net/article48/cejghp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、網(wǎng)站制作、網(wǎng)站收錄、網(wǎng)站建設(shè)、網(wǎng)站策劃、ChatGPT
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容