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
- AI回答記錄:python中有過載與重寫的概念嗎?AIPython
- python-過載Python
- Python 方法過載Python
- 你見過Python的GIL嗎Python
- python中的過載Python
- Python 運算子過載Python
- javaEE支援巢狀事務嗎,Spring支援嗎Java巢狀Spring
- Python 函式如何過載?Python函式
- python之運算子過載Python
- Python 類,函式過載Python函式
- Python中的過載方法Python
- Python——運算子過載(1)Python
- ASP.NET Core 6.0對熱過載的支援ASP.NET
- python3-----繼承 過載Python繼承
- 載入ntfs分割槽(透過載入支援ntfs核心補丁的方法)
- 下載Python安裝包及支援包路徑Python
- python中實現函式過載Python函式
- python函式過載是什麼?Python函式
- 【python隨筆】之【運算子過載】Python
- Python中常見運算子過載方法Python
- python 類的繼承與過載Python繼承
- Python實踐:模組自動過載Python
- Python模組過載的五種方法Python
- 框架支援struts2.0嗎框架
- iPhone Xs Max支援雙卡雙待嗎?iPhone Xs支援雙卡雙待嗎iPhone
- 飄在海上的艦載資料中心, 你見過嗎?
- 在 Python 中實現函式過載Python函式
- python過載父類的__init__方法Python
- Python中類方法過載---大部分Python
- C++支援函式過載,而C語言卻不支援,原來是這個原因!C++函式C語言
- python原始碼包怎麼下載?方便安裝嗎?Python原始碼
- onethink支援跨平臺嗎
- 高防CDN支援泛解析嗎?
- JB7不支援javascript嗎?JavaScript
- Apache DolphinScheduler支援Flink嗎?Apache
- webpack自動用svg生成iconfont字型圖示,支援熱過載WebSVG