Python入門基礎之面向對象四:運算符重載
Magic函數(特殊鉤子)
在python類中,我們經常見到前後是兩個下劃線的函數名,最常見的就是__init__函數了,那麼這種函數是什麼?這種函數是python內置函數被稱為特殊鉤子,也稱為magic函數。
這種函數讓讓對象和python的模型對象緊密的結合起來,讓我們自己的對象行為就像內置的對象行為一樣。
Python裡面有幾十種特殊運算符重載的方法,基本可以實現所有內置類型運算。包括數字、字元串、對象等。
其實運算符重載在入門階段基本用不到,這個只是先讓我們了解一下面向對象的好處。
簡單的看一些平時接觸的多的,主要有以下:
比較運算符:
數字運算符:
邏輯運算:
那麼這些方法如何使用呢?
在類中,我們可以繼承這些方法,然後重寫他們就可以了,比如,你在子類裡面重寫了__eq__方法,那麼你的對象便可以直接用等於,例如
代碼示例用法
類代碼,定義的一個類
在類中重寫了eq方法,我們可以看到,重寫之後在pycharm中它左邊會出現標誌,表示這個方法被重寫。
我們定義的是判斷兩個程序員的年齡是否相等,如果相等就返回True,反之返回False。
這裡我們加了異常,傳入錯誤的時候主動觸發異常,前面我也講過異常,有興趣的可以看看。
下面是調用方法和運行結果:
我們實例化了兩個程序員,第一個參數是名字,第二個是年齡,第三個是體重,然後我們直接用==操作符來判斷他們的年齡是否相等。
注意,如果我們沒有在類中定義__eq__這樣運行結果會報錯的。
其他操作的用法是一樣的,就不一一演示了。
快來領支付寶紅包!人人可領,天天可領!複製此消息,打開最新版支付寶就能領取!sK6wHt00X5
上一篇:乾貨!python入門基礎之面向對象三:繼承
乾貨!Python入門基礎之面向對象二:類和實例、方法
Python 入門基礎之面向對象過程-面向過程概述
※Fabric3:Fabric的Python3支持版
※這是小白的Python新手教程
TAG:Python |