函數(shù)重載是Python中的稀罕東西。

憑借整站使用H5建站的創(chuàng)新體驗(yàn)、定制設(shè)計(jì)、設(shè)計(jì)團(tuán)隊(duì)積累與透明式的服務(wù)過(guò)程,符合行業(yè)特點(diǎn),專(zhuān)屬顧問(wèn)根據(jù)企業(yè)產(chǎn)品,消費(fèi)群體屬性,準(zhǔn)確定位;設(shè)計(jì)師以目標(biāo)客戶(hù)為中心,以突出品牌官網(wǎng)特性為宗旨,定制專(zhuān)屬網(wǎng)站建設(shè)設(shè)計(jì)方案。
Python ? 3.6.0a4 Documentation ? The Python Standard Library ? 10.
Functional
10.2. functools — Higher-order functions and operations on callable objects
!
@[toc]
全局只有一個(gè)實(shí)例
font color=#03a3e3 該實(shí)現(xiàn)方式在多線(xiàn)程場(chǎng)景下不安全
繼承其他類(lèi)的類(lèi)稱(chēng)為派生類(lèi)(derived class)
被其他類(lèi)繼承的類(lèi)稱(chēng)為這些類(lèi)的基類(lèi)(base
class)
需要注意圓括號(hào)中基類(lèi)的順序:font color=#03a3e3 從左到右搜索 font
多繼承會(huì)導(dǎo)致菱形 diamond關(guān)系:有至少一個(gè)基類(lèi)可以從子類(lèi)經(jīng)由多個(gè)繼承路徑到達(dá)
基類(lèi)方法可能被多次調(diào)用
防止重復(fù)訪(fǎng)問(wèn),每個(gè)基類(lèi)只調(diào)用一次
通過(guò)子類(lèi)實(shí)例對(duì)象課調(diào)用父類(lèi)已被覆蓋
慎用多繼承(二義性)
– 對(duì)已有的運(yùn)算符重新進(jìn)行定義,賦予其另一種功能,以適應(yīng)不同的數(shù)據(jù)類(lèi)型
– 運(yùn)算符重載不能改變其本來(lái)寓意
– 運(yùn)算符重載只是一種 “語(yǔ)法上的方便” (sugar)
– 是一種函數(shù)調(diào)用的方式
沒(méi)有重載,但是可以有默認(rèn)參數(shù)和不定長(zhǎng)參數(shù),可以判斷默認(rèn)值和參數(shù)長(zhǎng)度來(lái)處理。
比如:
def range(start, end = -1):
if end == -1:
end = start
start = 0
或
def range(*args):
if len(args) == 1:
start = 0
end = args[0]
elif len(args) == 2:
start, end = args[0], args[1]
python 的重載主要包括方法重載和運(yùn)算符重載。1.python 方法重載: 其他的語(yǔ)言一般對(duì)于方法重載的話(huà),主要是根據(jù)參數(shù)的類(lèi)型不同或者是數(shù)量不同來(lái)區(qū)分同名的方法。而python則比較特殊,它本身是動(dòng)態(tài)語(yǔ)言,方法的參數(shù)是沒(méi)有類(lèi)型的,當(dāng)調(diào)用傳值的時(shí)候才確定參數(shù)的類(lèi)型,故對(duì)參數(shù)類(lèi)型不同的方法無(wú)需考慮重載。對(duì)參數(shù)數(shù)量不同的方法,則(大多數(shù)情況下)可以采用參數(shù)默認(rèn)值來(lái)實(shí)現(xiàn)。比如你可以定義函數(shù)的默認(rèn)值:def info(x,y,z=1): pass2.python 運(yùn)算符重載: 在C#中,我們通過(guò)使用關(guān)鍵字operator定義一個(gè)運(yùn)算符方法,并定義與所在類(lèi)相關(guān)的運(yùn)算符行為。在 Python中,運(yùn)算符重載的方式更為簡(jiǎn)單——每一個(gè)類(lèi)都默認(rèn)內(nèi)置了所有可能的運(yùn)算符方法,只要重寫(xiě)這個(gè)方法,就可以實(shí)現(xiàn)針對(duì)該運(yùn)算符的重載。例如以下是重載加法操作:class Info(object): def __init__(self): self.a = 11 self.b = 22 def __add__(self,x): return self.a * self.b 上面的例子是重寫(xiě)了+操作符號(hào),你也可以重載其他的運(yùn)算符。比如你可以重載乘號(hào)運(yùn)算符,感興趣的話(huà),可以自己寫(xiě)寫(xiě)代碼。希望上面講的2點(diǎn)能夠讓你對(duì)python重載有個(gè)簡(jiǎn)單的認(rèn)識(shí)。有興趣的可以關(guān)注下。
python里面沒(méi)有重載吧?
正常的重載說(shuō)的應(yīng)該是函數(shù)方法的重載,即兩個(gè)函數(shù)的名稱(chēng)相同但是參數(shù)不同是重載,會(huì)出現(xiàn)重載的情況一般是函數(shù)實(shí)現(xiàn)相同功能時(shí),遇到參數(shù)類(lèi)型可能不同的情況,會(huì)出現(xiàn)重載,如比較常見(jiàn)的對(duì)于加法的實(shí)現(xiàn),如果輸入兩個(gè)整數(shù)相加則直接使用整數(shù)加法,如果兩個(gè)字符串相加則使用字符串的拼接。輸入的參數(shù)類(lèi)型不同,其實(shí)是兩個(gè)不同的函數(shù),這在那種強(qiáng)類(lèi)型語(yǔ)言中是可以利用函數(shù)重載來(lái)實(shí)現(xiàn)的,而python中函數(shù)類(lèi)型是動(dòng)態(tài)的各種各樣的,所以不需要重載這個(gè)機(jī)制。相同函數(shù)名就是表示同一個(gè)方法。
網(wǎng)站名稱(chēng):python函數(shù)的重載,python 支持函數(shù)重載
文章網(wǎng)址:http://chinadenli.net/article40/hshoho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、靜態(tài)網(wǎng)站、微信小程序、定制開(kāi)發(fā)、響應(yīng)式網(wǎng)站、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)