python物件導向 封裝and多型

2022-05-03 01:06:05 字數 1903 閱讀 1664

為什麼講封裝之前要將這個東西? 我才不會說為什麼

首先:python沒有介面類這個概念!!!!!!!!

哈哈哈......神經病

python抽象類和介面類更接近於一種規範,例如,我吃蘋果,吃香蕉,吃梨,這些我都可以統一歸到吃水果這個類中,但是我能吃到這個水果嗎?????  水果這個籠統的東西我能吃到嗎,我只能吃到具體的香蕉什麼的.........

這個規範不止乙個,可以制定多個! 應該能明白這個意思吧.......

這就是規範化,統一化設計

這個格式是固定的

在下面統一乙個介面

這樣的一段**就實現了對程式的歸一化設計,不按照格式來編寫程式就會報錯

廣義的封裝: 例項化 乙個物件,物件空間封裝一些屬性

狹義的封裝: 私有制

對於私有靜態字段,類的外部不能訪問 

類名不能訪問私有靜態字段

對於私有靜態字段來說,只能在本類內部訪問,類的外部,派生類均不可訪問(其實可以訪問,只不過訪問的方式算是python的乙個bug)

私有成員: 私有驚天字段, 私有方法,私有物件屬性

class b:

__money = 1000 # 私有靜態字段

class a(b):

name = 'alex'

__age = 20 # 私有靜態字段

def func(self):

print(self.__age)

print(a.__age) # 對於私有靜態字段,類的內部可以訪問

print('func...')

def func1(self):

print(self.__money)

print(a.__money)

a1 = a()

print(a1.name)

print(a.name)

print('''

print(a1.__age) # 例項化物件不能訪問私有靜態字段

print(a.__age) # 類名不能訪問私有靜態字段

# 對於私有靜態字段,類的外部不能訪問

a1.func()

# 有乙個方法可以訪問,但是這是python的乙個bug

print(a._a__age)

''')

python處處是多型!!!!!!!!!!python中沒有多型的概念!!!!!!!!!.......撲哧........

(你放佛在刻意逗我笑)

嘛,這兩句話都沒有毛病,python確實沒有多型的概念,它有的就是鴨子型別

什麼叫鴨子型別?

鴨子型別: 看著像鴨子,他就是鴨子

# python中沒有多型. 但是他有鴨子型別

# 鴨子型別,: 看著像鴨子, 那麼他就是鴨子

# 互看為鴨子型別的資料都有:

class str:

def index(self):

pass

class list:

def index(self):

pass

class tuple:

def index(self):

pass

print('''

這些類,都互稱鴨子型別

其中方法名可以自由更改,任意變換,但是一般不要這樣做

''')

Python 物件導向,封裝

封裝來了 封裝是啥?封裝就好像把你需要的東西裝到盒子裡然後用封口膠把空封起來。照這種邏輯看,封裝 隱藏 哪在python中怎麼看出來隱藏呢?在python中用雙下劃線開頭的方式將屬性隱藏起來 設定成私有的 類中所有雙下劃線開頭的都會自動變形成 類名 x的形式 就是把函式跟方法給封裝起來 定義裡兩個類...

python 物件導向 封裝

1.私有屬性 class person object def init self,name,age self.name name self.age age 例項屬性 self.attack val 30self.life val 100 前面加兩個下劃線就是私有變數,私有屬性 a person wd...

Python物件導向04 物件導向封裝案例

封裝是物件導向程式設計的一大特點 物件導向程式設計的第一步 將屬性和方法封裝到乙個抽象的類中 外界使用類建立物件,然後讓物件呼叫方法物件方法的細節都被封裝在類的內部需求 小明體重75.0公斤 小明每次跑步會 0.5公斤 小明每次吃東西體重增加1公斤 class person 人類 def init ...