python物件導向 私有和繼承

2022-08-23 21:27:14 字數 2077 閱讀 8349

一、 私有屬性和私有方法

應用場景

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

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

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

定義方式

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

class

my:

deftest(self):

self.

__password = 123456 #

私有屬性

defsay(self):

print('

password

',self.__password

)

def__set_password(self): #

私有方法

self.__password = 7890

defupdate(self):

self.

__set_password

()m =my()

m.test()

#無輸出結果

m.say() #

輸出:password 123456

m.update() #

無輸出結果

m.say() #

輸出:password 7890

參考:二、繼承

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

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

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

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

2,繼承的語法

class 類名(父類)

def 子類特有的方法

class

lm: money = 1000000house = 5

defdriver(self):

print('

會開車'

)class

mcb(lm):

defabout_me(self):

print('

我有 %s 錢 ,%s 房子

'%(self.money,self.house))

self.driver()

defdriver(self):

print('

會開28個輪子的汽車')

m =mcb()

m.driver()

#輸出:會開28個輪子的汽車

m.about_me()

#

以上**輸出:

會開28個輪子的汽車

我有 1000000 錢 ,5房子

會開28個輪子的汽車

3. super().方法名():在父類某個方法的基礎上增加新功能

class car: #

父類def

run(self):

print('

running...')

return

'abc

'class newcar(car): #

子類def

run(self):

#沿用父類中的功能的同時,再增加下面的新功能

res =super().run() #

super()的意思就是找到父類,等同於car().run()

print('

fly...

') #

增加的父類中沒有的功能

print

(res)

bmw=newcar()

bmw.run()

#

以上**輸出結果如下:

running...

fly...

abc

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

1,c類從b類繼承,b類又從a類繼承

2,那麼c類就具有b類和a類的所有的屬性和方法

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

參考:

Python物件導向06 私有屬性和私有方法

應用場景 定義方式 class women def init self,name self.name name 不要問女生的年齡 self.age 18 def secret self print 我的年齡是 d self.age xiaofang women 小芳 私有屬性,外部不能直接訪問 pr...

python物件導向學習(三)私有屬性和私有方法

目錄在j a或者其他的程式語言中,使用訪問修飾符來限制屬性和方法的訪問級別,一般有public protected default private這四種級別,但是python中是不同的。應用場景 定義方式 class person def init self self.name zfx self.a...

python 面向繼承物件 繼承

1.python物件導向的繼承指的是多個類之間的所屬關係,即預設繼承父類的所有屬性和方法。2.注意 當乙個類有多個父類的時候,預設使用第乙個父類的同名屬性和方法。3.檢視某個類的繼承關係 物件.mro 4.子類呼叫父類的同名方法和屬性 class a object definit self self...