1.什麼是封裝?
根據名字寓意為:把乙個東西裝起來,然後密封,類似這樣的物件導向的程式設計為封裝。
真正的封裝是明確的區別內外,只能在內部用,外部無法呼叫。
2.舉例:
classcar:
_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('
*************************')
(c1._star)
print(c1._car__star1)
執行結果:
賓士e600是大型高檔轎車型別的車*************************benchi
baoma
process finished with exit code 0
3.意義
第乙個層面的封裝,就是把東西裝進麻袋。 類就是一種麻袋。
第二個層面的封裝就是兩個約定,單下橫線 _,雙下橫線 __。
第三個層面的封裝明確區分內外,外部無法直接呼叫。
舉例:
classcar:
_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()
執行結果:
baomaprocess 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.屬性查詢和方法繫結 物件的命名空間裡只存放著物件獨有的屬性,而物件們相似的屬性是存放於類中的。物件在訪問屬性時,會優先從物件本...