Python中用類實現物件和封裝

2022-06-30 06:42:14 字數 3574 閱讀 2885

"""

用類實現物件和封裝

物件:對應客觀世界的事物,將描述事物的一組資料和與這組資料有關的操作封裝在一起,

形成乙個實體,這個實體就是物件

類:具有相同或相似性質的物件的抽象就是類

forexample:汽車是乙個類,則具體一輛汽車就是乙個物件

物件導向程式設計的特點:

1.封裝性

封裝是指將資料與具體操作的實現**放在某個物件內部,使這些**的實現細節

不被外界發現,外界只能通過介面使用該物件,而不能通過任何形式修改物件內部

實現,正是由於封裝機制,程式在使用某一物件時不需要關心該物件的資料結構細

節及實現操作的方法。使用封裝能隱藏物件實現細節,使**更易維護,同時因為

不能直接呼叫、修改物件內部的私有資訊,在一定程度上保證了系統安全性。類通

過將函式和變數封裝在內部,實現了比函式更高一級的封裝。

2.繼承性

繼承**於現實世界,乙個最簡單的例子就是孩子會具有父母的一些特徵,即每個

孩子都會繼承父親或者母親的某些特徵,當然這只是最基本的繼承關係,現實世界中還存在

著更複雜的繼承。繼承機制實現了**的復用,多個類公用的**部分可以只在乙個類中提

供,而其他類只需要繼承這個類即可。

3.多型性

多型通常是指類中的方法過載,即乙個類中有多個同名(不同引數)的方法,方法

呼叫時,根據不同的引數選擇執行不同的方法。

"""# 建立類

"""物件是類的乙個例項,要想建立乙個物件,先要定義乙個類。在python中,可使用class關鍵字來宣告乙個類,其語法格式如下:

class 類名:

類的屬性(成員變數)

...類的方法(成員方法)

...類由三部分組成:

1.類名:類的名稱,通常他的首字母大寫。

2.屬性:用於描述事物的特徵,如人的姓名、年齡等。

3.方法:用於描述事物的行為,如人具有說話、微笑等行為。

"""

class dog:

"""使用關鍵字class定義乙個名稱為dog的類,類中有乙個名字叫enjoy()的成員方法。從示例中可以看出,

方法跟函式的格式是不一樣的,主要區別在於成員方法必須顯式的宣告乙個self函式,而且位於引數列表的開頭。

self代表物件本身,可以用來引用物件的屬性和方法。

"""num=0

def __init__(self,id=0,color="yellow"): # 構造方法

self.id=id

seif.color=color

def enjoy(self):

print("wangwang")

dog=dog()

dog.enjoy()

# 建立物件

"""程式想要實現具體的功能,僅有類是遠遠不夠的,還要根據類來建立物件。在python中,可以使用如下方法來建立乙個物件。

物件名=類名()

為物件新增屬性,可以使用如下方法。

物件名.屬性名=值

"""dog=dog() # dog實際是乙個變數,可以使用它類的屬性和方法

dog.weight=52

#多型性

class

animal:

defkind(self):

print("

i am animal")

class

dog(animal):

defkind(self):

print("

i am a dog")

class

cat(animal):

defkind(self):

print("

i am a cat")

class

pig(animal):

defkind(self):

print("

i am a pig")

#這個函式接收乙個animal引數,並呼叫它的kind方法

defshow_kind(animal):

animal.kind()

"""狗、貓、豬都繼承了動物類,並各自重寫了kind方法。show_kind()函式接收乙個animal參

數,並呼叫它的kind方法。可以看出,無論我們給animal傳遞的是狗、貓還是豬,都能正確

的呼叫相應的方法,列印對應的資訊。這就是多型。

"""d =dog()

c =cat()

p =pig()

show_kind(d)

show_kind(c)

show_kind(p)

#建立類與物件

"""class 類名:

類的屬性(成員變數)

...類的方法(成員方法)

...類名:類的名稱,通常他的首字母大寫

屬性:用於描述事物的特徵,如人的姓名、年齡等

方法:用於描述事物的行為,如人具有說話、微笑等行為

"""class

dog:

num = 0 #

類變數def

__init__(self, id=0, color="

yellow

"): #

構造方法

self.id =id

self.color =color

def enjoy(self): #

成員方法

print("

wangwang")

defshow(self, weight):

print("

重量{}公斤

".format(weight))

print("

id:{},顏色:{}

".format(self.id, self.color))

dog1 = dog(color="

grey

") #

構造dog1物件

dog1.weight = 52 #

為類新增屬性

dog1.show(dog1.weight)

dog1.enjoy()

dog2 = dog("

101", "

black")

dog2.weight = 55dog2.show(dog2.weight)

#構造方法和析構方法

"""python的類提供了兩個比較特殊的方法:__init__()和__del__(),分別用於初始化物件的

屬性和釋放物件所占用的資源

"""class

dog:

def__init__(self): #

構造方法

self.color = "

black

"def

show(self):

print("

id:{},顏色:{}

".format(self.id, self.color))

def__del__

(self):

print("

物件被清除")

dog =dog()

dog.id = 1dog.show()

del dog #

刪除dog物件

python封裝的方法 Python類和封裝方法

我是oop新手,這是我建立python類的第一次嘗試。我試圖使我的3個變數私有化,以便只有方法更新資訊 強制封裝 似乎如果我從類中刪除setters和getters方法,它對我的 沒有影響 一定是初始化器方法在做這項工作嗎?我能做些什麼來改善這一點?謝謝。在 編輯 我已經更新了我的 並刪除了初始化。...

Python類和物件

1 建立類 語法 class classname 類的幫助資訊 類文件字串 class suite 類體 例如 class employee 所有員工的基類 empcount 0 def init self,name,salary self.name name self.salary salary ...

Python類和物件

python類和物件 類 具有相同的屬性和方法的物件的集合。物件 萬物皆物件。類和物件的關係 類是具有相同屬性方法物件的集合。類包含屬性和方法 語法 class 類名 屬性 方法定義乙個類 建立物件 屬性寫在類外的情況,就是通過物件,屬性,物件,方法的方式呼叫。屬性相對於類來說屬於全域性,每個方法都...