1. 程式人生 > >python面向物件--私有和繼承

python面向物件--私有和繼承

一、 私有屬性和私有方法

應用場景

在實際開發中,物件的某些屬性或方法可能只希望在物件的內部使用,而不希望在外部被訪問到

私有屬性 就是 物件 不希望公開的屬性 (屬性即類裡面的變數)

私有方法 就是 方法 不希望公開的方法

定義方式

在定義屬性或方法時,在屬性名或者方法名前新增兩個下劃線,定義的就是私有屬性或方法,只能在類裡面用。

class My:
    def test(self):
        self.__password = 123456  #私有屬性
    def say(self):
        print('password',self.__password
) def __set_password(self): #私有方法 self.__password = 7890 def update(self): self.__set_password() m = My() m.test() #無輸出結果 m.say() #輸出:password 123456 m.update() #無輸出結果 m.say() #輸出:password 7890

參考:https://www.2cto.com/os/201807/763010.html

 

二、繼承

子類繼承自父類,可以直接享受父類中已經找到封裝好的方法

子類中應該根據自己的需求,封裝子類特有的屬性和方法

單繼承

1,繼承的概念 語法和特點

繼承的概念:子類擁有父類的所有方法和屬性(子類只需封裝自己特有的方法和屬性)

2,繼承的語法

class 類名(父類)

def 子類特有的方法

class Lm:
    money = 1000000
    house = 5
    def driver(self):
        print('會開車')

class Mcb(Lm):
    def about_me(self):
        print('我有 %s 錢 ,%s 房子'%(self.money,self.house))
        self.driver()

    
def driver(self): print('會開28個輪子的汽車') m = Mcb() m.driver() #輸出:會開28個輪子的汽車 m.about_me()
#以上程式碼輸出:
會開28個輪子的汽車
我有 1000000 錢 ,5 房子
會開28個輪子的汽車

繼承的傳遞性:(爺爺 父親 兒子)

1,C類從B類繼承,B類又從A類繼承

2,那麼C類就具有B類和A類的所有的屬性和方法

子類擁有父類以及父類的父類中封裝的所有的屬性和方法

參考:https://www.2cto.com/os/201807/763010.html