python 面對物件 繼承

2021-09-12 19:49:14 字數 1015 閱讀 4851

私有屬性和方法通過在屬性和方法名前新增__得到。

私有屬性和方法是物件的隱私,不能通過外界和子類直接訪問

在外界無法訪問到私有屬性和方法(不能直接print列印)

可以通過在物件的方法內部訪問私有屬性

子類物件可以通過父類的公有方法間接訪問到私有屬性或私有方法

eg:

classa:

def __init__

(self)

: self.num1 =

11 #定義私有屬性

self.__num2 =

22 #定義私有方法

def __test

(self)

:print

("私有方法,私有屬性:%d %d"

%(self.num1,self.__num2)

) #定義公有屬性

def test

(self)

:print

("父類的公有方法%d"

% self.__num2)

class

b(a)

: def demo

(self)

: #嘗試在子類中呼叫私有屬性

print

("self.__num2"

) #嘗試在父類中呼叫私有方法

self.

__test()

b =b()

print

(b)#通過父類的公有方法間接訪問到私有屬性(self.__num2)或私有方法

b.test

()

1.覆蓋父類的方法 (方法的重寫):子類中定義與父類相同的方法,會覆蓋父類的方法

2.拓展父類的方法 :先重寫父類的方法:使用super(). 的方法來呼叫父類中原本封裝的方法。比如:super().bark()

補:只能在__init__方法中定義屬性!

注:總結自黑馬python程式設計基礎班

c 面對物件繼承

可以認為類是屬於命名空間的 如果在當前專案中沒有這個類的命名空間,我們需要手動匯入這個類所在的命名空間 alt shift f10 快捷鍵 在乙個專案中引用另乙個專案的類 1.新增引用 2.引用命名空間 區別 1.值型別和引用型別在記憶體上儲存的地方不一樣。2.在傳遞值型別和傳遞引用型別的時候,傳遞...

面對物件繼承之組合繼承

組合繼承 1.所有不需要共享的例項屬性使用call來繼承 2.所有需要共享的屬性通過原型鏈繼承 把兩者結合到一起成為組合繼承 優點 既可以讓共享的屬性只保留乙份,又可以讓不需要共享的屬性每個物件都有 function animal animal的原型屬性 animal.prototype.shake...

js的面對物件,繼承

js是乙個基於物件的語言,在es6之前,js是使用了建構函式來模擬類,使得js也可以面對物件來程式設計,es6中加入了類的定義 通過字面量的方式建立 let obj 例項化物件建立物件 let person newobject person.name 小明 person.age 12 工廠模式建立物...