"""用類實現物件和封裝
物件:對應客觀世界的事物,將描述事物的一組資料和與這組資料有關的操作封裝在一起,
形成乙個實體,這個實體就是物件
類:具有相同或相似性質的物件的抽象就是類
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 類名 屬性 方法定義乙個類 建立物件 屬性寫在類外的情況,就是通過物件,屬性,物件,方法的方式呼叫。屬性相對於類來說屬於全域性,每個方法都...