python支援過載嗎
過載概念
過載是對繼承的父類方法進行重新定義。過載可以重新定義方法還可以重新定義運算子。因為透過繼承的類不一定能滿足當前類的需求。在當前類中只需要修改部分內容而達到自己的需求。
過載特點
減少程式碼量和靈活指定型類
子類具有父類的方法和屬性
子類不能繼承父類的私有方法或屬性
子類可以新增新的方法
子類可以修改父類的方法
方法過載
# coding=utf-8 class human(object): __name = '' # 定義屬性 __sex = 0 __age = 0 __height = 0 __weight = 0 def __init__(self, sex, age, height, weight): self.__sex = sex self.__age = age self.__height = height self.__weight = weight def set_name(self,name): self.__name = name def show(self): print(self.__name, self.__sex, self.__age, self.__height, self.__weight) class student(human): __classes = 0 __grade = 0 __num = 0 def __init__(self, classes,grade,num,sex,age,height,weight): # 過載 __init__ 方法 self.__classes = classes self.__grade = grade self.__num = num human.__init__(self, sex, age, height, weight) def show(self): # 過載 show 方法 human.show(self) print(self.__classes,self.__grade,self.__num) if __name__ == '__main__': a = student(3,2,19910218,'男',13,'158',45) a.set_name('小明') a.show()
運算子過載
運算子過載是在類方法中攔截內建的操作——當類的例項出現在內建操作中,Python自動呼叫重新定義的方法,並將重新定義方法的返回值變成了相應操作的結果
class List(object): __list = [] def __init__(self, *args): # 過載 __init__ 方法 self.__list = [] for arg in args: self.__list.append(arg) def __add__(self, n): # 過載 + 運算子 for i in range(0,len(self.__list)): self.__list[i] = self.__list[i] + n def __sub__(self, n): # 過載 - 運算子 for i in range(0,len(self.__list)): self.__list[i] = self.__list[i] - n def __mul__(self, n): # 過載 * 運算子 for i in range(0,len(self.__list)): self.__list[i] = self.__list[i] * n def __div__(self, n): # 過載 / 運算子 for i in range(0,len(self.__list)): self.__list[i] = self.__list[i] / n def show(self): print(self.__list) if __name__ == '__main__': myList = List(1,2,3,4,5,6,7,8,9) myList.show() myList + 3 myList.show() myList - 2 myList.show() myList * 2 myList.show()
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/151/viewspace-2836719/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python中有重寫和過載的方法嗎?Python
- Python 方法過載Python
- python-過載Python
- AI回答記錄:python中有過載與重寫的概念嗎?AIPython
- python中的過載Python
- Python 運算子過載Python
- 你見過Python的GIL嗎Python
- python之運算子過載Python
- Python 函式如何過載?Python函式
- python3-----繼承 過載Python繼承
- ASP.NET Core 6.0對熱過載的支援ASP.NET
- 下載Python安裝包及支援包路徑Python
- python中實現函式過載Python函式
- 【python隨筆】之【運算子過載】Python
- python函式過載是什麼?Python函式
- Apache DolphinScheduler支援Flink嗎?Apache
- 在 Python 中實現函式過載Python函式
- Python模組過載的五種方法Python
- reloadium:提供Python高階熱過載功能Python
- 你知道js的函式過載是什麼嗎?JS函式
- 小米8 SE支援NFC功能嗎?小米8 SE支援紅外遙控嗎?
- C++支援函式過載,而C語言卻不支援,原來是這個原因!C++函式C語言
- webpack自動用svg生成iconfont字型圖示,支援熱過載WebSVG
- 關於python建構函式的過載Python函式
- 如何在Python中實現函式過載Python函式
- [轉載] python通過反射執行程式碼Python反射行程
- onethink支援跨平臺嗎
- python原始碼包怎麼下載?方便安裝嗎?Python原始碼
- iPhone Xs Max支援雙卡雙待嗎?iPhone Xs支援雙卡雙待嗎iPhone
- 為什麼 Python 沒有函式過載?如何用裝飾器實現函式過載?Python函式
- appium 支援多機協作嗎APP
- 高防CDN支援泛解析嗎?
- python就是爬蟲嗎-python就是爬蟲嗎Python爬蟲
- 專為Python初學者準備的IDE你用過嗎?PythonIDE
- 12 Python物件導向程式設計:運算子過載Python物件程式設計
- vivo NEX支援NFC功能嗎? vivo NEX依然不支援NFC功能
- 麒麟980手機支援5G網路嗎? 麒麟980支援5G嗎?
- python如何支援併發?Python