python學習67 物件導向 封裝

2022-08-28 17:00:31 字數 1709 閱讀 7821

1.什麼是封裝?

根據名字寓意為:把乙個東西裝起來,然後密封,類似這樣的物件導向的程式設計為封裝。

真正的封裝是明確的區別內外,只能在內部用,外部無法呼叫。

2.舉例:

class

car:

_star = '

benchi'#

"_"表明是隱藏屬性,不能在外部使用(不代表無法呼叫到)

__star1 = '

baoma'#

"__"python給自動重新命名,命名為"_car__star1"

def__init__

(self,name,type):

self.name =name

self.type =type

defget_type(self):

print('

%s是%s型別的車

' %(self.name,self.type))

c1 = car('

賓士e600

','大型高檔轎車')

c1.get_type()

print('

*************************')

print

(c1._star)

print(c1._car__star1)

執行結果:

賓士e600是大型高檔轎車型別的車

*************************benchi

baoma

process finished with exit code 0

3.意義

第乙個層面的封裝,就是把東西裝進麻袋。  類就是一種麻袋。

第二個層面的封裝就是兩個約定,單下橫線 _,雙下橫線 __。

第三個層面的封裝明確區分內外,外部無法直接呼叫。

舉例:

class

car:

_star = '

benchi'#

"_"表明是隱藏屬性,不能在外部使用(不代表無法呼叫到)

__star1 = '

baoma'#

"__"python給自動重新命名,命名為"_car__star1"。理論上對外部隱藏了

def__init__

(self,name,type):

self.name =name

self.type =type

defget_type(self):

print('

%s是%s型別的車

' %(self.name,self.type))

defget_star(self):       # 介面函式

print(self.__star1) #

內部呼叫

c1 = car('

賓士e600

','大型高檔轎車')

c1.get_star()

執行結果:

baoma

process finished with exit code 0

4.從根本意義上講python沒有從實際上限制你的訪問。所以說沒有絕對的封裝

5.python中關於oop的常用術語

----封裝/介面

----合成

----派生/繼承//繼承結構

----泛化/特化

----多型

----自省/反射

python物件導向學習 python物件導向學習

物件導向最重要的概念就是類 class 和例項 instance 必須牢記類是抽象的模板,比如student類,而例項是根據類建立出來的乙個個具體的 物件 每個物件都擁有相同的方法,但各自的資料可能不同。物件導向三個概念 1.封裝 即把客觀事物封裝成抽象的類,並且類可以把自己的資料和方法讓可信的類進...

python學習 物件導向

繼承 從已經有的類建立新類的過程,提供繼承資訊的叫父類 超類 基類 得到繼承資訊的叫子類 派生類 繼承是實現 復用的方式,繼承關係是一種is a關係。a student is a person.a teacher is a person.class person 定義人類 屬性name 名字 屬性n...

python物件導向學習

1.物件 物件是資料和功能 函式 的集合體 2.類 類是具有共同屬性 資料 函式 的物件的總稱 注 先定義類後例項化物件 3.屬性訪問 可以通過 dict 訪問屬性的值 4.屬性查詢和方法繫結 物件的命名空間裡只存放著物件獨有的屬性,而物件們相似的屬性是存放於類中的。物件在訪問屬性時,會優先從物件本...