淺析Python中的方法重載
Python 中的方法重載
方法重載在 Python 中起著至關(guān)重要的作用。 方法有時(shí)采用零個(gè)參數(shù),有時(shí)采用一個(gè)或多個(gè)參數(shù)。
當(dāng)我們以不同的方式調(diào)用同一個(gè)方法時(shí),稱為方法重載。 Python 并不像其他語言一樣默認(rèn)支持重載方法。
在 Python 中,兩個(gè)或多個(gè)方法不能具有相同的名稱,因?yàn)榉椒ㄖ剌d允許我們使相同的運(yùn)算符具有不同的含義。 讓我們?cè)敿?xì)討論方法重載。
如果同一類中的兩個(gè)或多個(gè)方法采用不同的參數(shù),則它們可能具有相同的名稱。 方法重載的特性允許同一個(gè)操作符有多種解釋。
重載是指一個(gè)方法或操作符可以在同一個(gè)名稱下執(zhí)行許多功能。
現(xiàn)在,讓我們通過一個(gè)基本示例來討論方法重載,在該示例中我們使用相同的參數(shù)執(zhí)行兩個(gè)不同的操作。
例子:
# python class methodOverload: def MethodHi (self, user=None): if user is not None: print('Hello ' + user) else: print('Hello') MethodObj = methodOverload() MethodObj.MethodHi() MethodObj.MethodHi('Hasnain')
輸出:
正如您在此示例中所看到的,我們創(chuàng)建了一個(gè)類 methodOverload,在其中定義了方法 MethodHi,該方法將用或不用名稱向用戶打招呼。 在該類之后,我們使用該類創(chuàng)建了一個(gè)對(duì)象實(shí)例,并使用或不使用參數(shù)調(diào)用它。
這種加載具有不同參數(shù)的函數(shù)的類型稱為方法重載。 現(xiàn)在,讓我們討論一下在 Python 程序中使用方法重載的優(yōu)點(diǎn)。
Python 中方法重載的優(yōu)點(diǎn)
在Python程序中使用方法重載有很多優(yōu)點(diǎn)。 其中一些如下:
1.方法重載降低了程序、功能或方法的復(fù)雜性。 它使用戶可以輕松地使用不帶參數(shù)、使用單個(gè)參數(shù)或使用多個(gè)參數(shù)的方式。
2.方法重載提高了代碼質(zhì)量,提高了效率,并涵蓋了大多數(shù)用例,使我們的應(yīng)用程序成功。
3.方法重載提高了程序的可重用性并使其易于訪問。
現(xiàn)在,讓我們看一些方法重載的示例,我們將涵蓋方法重載的不同方面。 當(dāng)我們創(chuàng)建相同的函數(shù)并希望以不同的方式工作時(shí),我們可以使用方法重載。
Python 中的方法重載在同一方法中使用不同的數(shù)據(jù)類型
在我們的第一個(gè)示例中,我們將添加一個(gè)類,并使用不同的數(shù)據(jù)類型以相同的方法執(zhí)行兩個(gè)任務(wù)。 程序檢查數(shù)據(jù)類型是否為整數(shù),然后答案將是數(shù)字相加。
如果數(shù)據(jù)類型是字符串,則答案將是字符串的串聯(lián)。 我們將使用 for 循環(huán)來傳遞參數(shù)并檢查所有參數(shù)。
如果它們是整數(shù),則將它們相加。 如果它們是字符串,則將它們組合起來,如下所示。
例子:
# python def addition(datatype, *args): if datatype =='int': result = 0 for x in args: result = result + x print(result) if datatype =='str': result = [] for x in args: result.append(x) print(result[0], result[1]) addition('int',7, 11) addition('str', 'Hello', 'python')
輸出:
在上面的示例中,當(dāng)我們提供整數(shù)作為要添加數(shù)字的數(shù)據(jù)類型時(shí),我們收到了數(shù)字的加法。 但是,當(dāng)我們將字符串作為數(shù)據(jù)類型并傳遞字符串時(shí),相同的方法會(huì)連接字符串并顯示結(jié)果。
Python 中使用多個(gè)調(diào)度裝飾器的方法重載
現(xiàn)在,讓我們看另一個(gè)有點(diǎn)棘手的例子。 在這個(gè)例子中,我們將使用有效的方法來執(zhí)行方法重載。
我們需要使用以下命令安裝多個(gè)調(diào)度裝飾器。
# python pip install multipledispatch
安裝后,我們將其導(dǎo)入到我們的程序中。 它調(diào)度三個(gè)整數(shù)和三個(gè)浮點(diǎn)數(shù)并顯示以下結(jié)果。
例子:
# python from multipledispatch import dispatch @dispatch(int,int,int) def multiply(oneInt,twoInt,threeInt): ans = oneInt * twoInt * threeInt print(ans); @dispatch(float,float,float) def multiply(oneInt,twoInt,threeInt): ans = oneInt * twoInt * threeInt print(ans); multiply(3,7,8) multiply(3.6,5.9,9.9)
輸出:
正如您在上面的示例中看到的,我們可以使用多個(gè)調(diào)度裝飾器來發(fā)送不同的數(shù)據(jù)類型,并對(duì)我們想要使用的所有數(shù)據(jù)類型使用相同的方法從中獲取結(jié)果。
到此這篇關(guān)于淺析Python中的方法重載的文章就介紹到這了,更多相關(guān)Python方法重載內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python字符串編碼轉(zhuǎn)換 encode()和decode()方法詳細(xì)說明
這篇文章主要介紹了Python字符串編碼轉(zhuǎn)換 encode()和decode()方法詳細(xì)的說明,下面文章圍繞encode()和decode()方法的相相關(guān)資料展開內(nèi)容,具有一定的價(jià)值,需要的朋友卡通參考一下2021-12-12解決已經(jīng)安裝requests,卻依然提示No module named requests問題
今天小編就為大家分享一篇解決已經(jīng)安裝requests,卻依然提示No module named 'requests'問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-05-05Python對(duì)象中__del__方法起作用的條件詳解
今天小編就為大家分享一篇Python對(duì)象中__del__方法起作用的條件詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-11-11Python集合魔法解鎖數(shù)據(jù)去重技巧應(yīng)用實(shí)例
這篇文章主要為大家介紹了Python集合魔法解鎖數(shù)據(jù)去重技巧應(yīng)用實(shí)例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11Python?scipy利用快速傅里葉變換實(shí)現(xiàn)濾波
這篇文章主要為大家詳細(xì)介紹了Python?scipy如何利用快速傅里葉變換實(shí)現(xiàn)濾波,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-01-01基于CentOS搭建Python Django環(huán)境過程解析
這篇文章主要介紹了基于CentOS搭建Python Django環(huán)境過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08OpenCV模板匹配matchTemplate的實(shí)現(xiàn)
這篇文章主要介紹了OpenCV模板匹配matchTemplate的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10Python 實(shí)現(xiàn)某個(gè)功能每隔一段時(shí)間被執(zhí)行一次的功能方法
今天小編就為大家分享一篇Python 實(shí)現(xiàn)某個(gè)功能每隔一段時(shí)間被執(zhí)行一次的功能方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-10-10python實(shí)現(xiàn)靜態(tài)web服務(wù)器
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)靜態(tài)web服務(wù)器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-09-09