python中物件導向有什麼特點

秒秒開心發表於2023-11-28

一:問題

python中物件導向有什麼特點?

 

二:回答

python同其他面嚮物件語言一樣,有3個特徵:封裝、繼承、重寫

 

簡單理解就是:
封裝:把一系列屬性和操作封裝到一個方法裡面,這樣想要實現某種效果,只需要簡單的調個方法名字就行了,不需要在寫一遍所有的操作內容

繼承:簡單理解就是拼爹,父輩擁有的財富,你直接繼承就能用,比如父輩有結婚這個方法,你繼承來了,別人要白手起家結婚,你直接拿父輩的資產結婚

重寫:簡單理解就是拼爹得來的東西,在你這一輩有一些地方不適用了,要與時俱進,把父輩留給你的改一改,這樣你的生活比父輩更加豐富多彩,即多型,比如父輩結婚的方法寫的是用拖拉機結婚,到你這裡還是結婚但是換成了小汽車結婚了

 1 class Father(object):  
 2     def get_married(self,name="老爸"):  
 3         print(name)  
 4         print("用拖拉機結婚!")  
 5         print("彩禮三大件", ["腳踏車", "電視機", "縫紉機"])  
 6   
 7 class Child(Father):  
 8     def get_married(self,name="兒子"):  
 9         print(name)  
10         print("用小汽車結婚!")  
11         print("彩禮三大件", ["車子", "房子", "票子"])  
12   
13 if __name__ == "__main__":  
14     clild = Child()  
15     clild.get_married("小明")
16 
17 >>> 執行結果如下:
18 >>> 小明
19 >>> 用小汽車結婚!
20 >>> 彩禮三大件 ['車子', '房子', '票子']

 

三:關於python函式過載的說明

過載的條件是:
①一個類裡面
②方法名稱相同
③引數不同

事實上按照這樣的條件,在python中是不建議這樣的寫法,結果是一個類裡面如果出現多個重名的方法,會覆蓋掉先寫的方法。
那python的過載怎麼辦,可以這樣理解,這裡方法的引數不同,存在2種情況:引數型別不同、引數個數不同

而在python裡對引數的型別沒有強制限制,你可以不寫引數的型別,引數的個數又可以接受可變引數,所以python其實不需要過載這個概念。

如下圖所示:用一個方法就能實現多個方法過載的效果

 1 class Child():  
 2     def info(self,name="兒子",age=0):  
 3         print(name,age)
 4 
 5 if __name__ == "__main__":  
 6     clild = Child()  
 7     #沒傳參  
 8     clild.info()  
 9     #傳1個引數  
10     clild.info("小明")  
11     #傳2個引數  
12     clild.info("小明",28)
13 
14 >>> 程式執行結果如下:
15 >>> 兒子 0
16 >>> 小明 0
17 >>> 小明 28

 

相關文章