python物件導向程式設計 OOP

2021-09-20 21:34:31 字數 3270 閱讀 2723

物件導向程式設計,是一種程式設計方式,這種程式設計方式需要使用「物件」來實現。萬物都是物件。

物件的特徵:

1.世間萬物皆物件

2.每個物件都是唯一的

3.物件具有屬性和行為(物件的行為包括具有的功能以及具體的實現)

4.物件具有狀態

5.物件分為類物件和例項物件兩大類(類物件是具有相同屬性和例項物件的抽象,類物件是例項物件的模板,例項物件是由類物件創造出來的)

物件導向程式設計的大體步驟

1.抽象出類物件

2.抽象出類物件的屬性

3.抽象出類物件的行為

4.根據類物件建立例項物件

5.通過例項物件訪問屬性和方法

class cat(object):

pass

class 類名(object):

#類名由乙個或多個單詞組成,單詞首字母大寫

初識類的方法

#行為(方法)是類中特殊的函式

#初識屬性

class cat(object):

def _init_(self, breed, name, age, health):

self.breed = breed

self.name = name

self.age = age

self.health = health

def run(self):

print("cat is running")

def miao(self):

print("cat is miaoing")

def eat(self):

print("cat is eatting")

#根據類物件建立例項物件

cat = cat("波斯貓","喵喵",1,"盧本偉")

print(cat.breed)

print(cat.name)

print(cat.age)

print(cat.health)

cat.run()

cat.miao()

cat.eat()

**例項屬性:**例項物件所繫結的屬性

繫結方法有兩種:

1.在類物件內部:

self.屬性名 = 屬性值

2.在物件外部:

例項物件.屬性名 = 屬性值

class myclass(object):

def _init_(self):

#在類物件的內部繫結例項屬性

self.ia1 = 18

def do_sth1(self):

#在類物件的內部訪問例項屬性

print(self.ia1)

def do_sth2(self):

print(self.ia2)

def do_another(self):

#在類物件的內部繫結例項屬性

self.ia2 = 56

def do_sth3(self):

print(self.ia3)

def do_sth3(self):

print(self.ia3)

例項物件.dict

可獲得該例項物件所繫結的所有屬性及其值得字典

**類屬性:**指類物件所繫結的屬性

繫結類屬性的方式有兩種:

1.在類物件內部(方法外):

屬性名 = 屬性值

2.在類物件外部

類物件.屬性名 = 屬性值

class myclass(object):

#在類物件內部(方法外)繫結類屬性

cal = 66

def do_sth(self):

#在類物件內部(方法中)訪問類屬性

print(myclass.cal)

類的專有方法:

init: 建構函式,在生成物件時呼叫

del: 析構函式,釋放物件時使用

repr: 列印,轉換

setitem: 按照索引賦值

getitem: 按照索引獲取值

len: 獲得長度

cmp: 比較運算

call: 函式呼叫

add: 加運算

sub: 減運算

mul: 乘運算

truediv: 除運算

mod: 求餘運算

pow: 乘方

物件導向常用術語

抽象/實現

抽象指對現實世界問題和實體的本質表現,行為和特徵建模,建立乙個相關的子集,可以用於 繪程式結構,從而實現這種模型。抽象不僅包括這種模型的資料屬性,還定義了這些資料的介面。

封裝/介面

封裝描述了對資料/資訊進行隱藏的觀念,它對資料屬性提供介面和訪問函式。通過任何客戶端直接對資料的訪問,無視介面,與封裝性都是背道而馳的,除非程式設計師允許這些操作。(注意:對外透明的意思是,外部呼叫者可以順利的得到自己想要的任何功能,完全意識不到內部細節的存在)

合成合成擴充了對類的 述,使得多個不同的類合成為乙個大的類,來解決現實問題。合成 述了 乙個異常複雜的系統,比如乙個類由其它類組成,更小的元件也可能是其它的類,資料屬性及行為, 所有這些合在一起,彼此是「有乙個」的關係。

派生/繼承/繼承結構

派生描述了子類衍生出新的特性,新類保留已存類型別中所有需要的資料和行為,但允許修改或者其它的自定義操作,都不會修改原類的定義。

泛化/特化

泛化表示所有子類與其父類及祖先類有一樣的特點。

特化描述所有子類的自定義,也就是,什麼屬性讓它與其祖先類不同。

多型與多型性

多型指的是同一種事物的多種狀態:水這種事物有多種不同的狀態:冰,水蒸氣。多型性的概念指出了物件如何通過他們共同的屬性和動作來操作及訪問,而不需考慮他們具體的類。

自省/反射

自省也稱作反射,這個性質展示了某物件是如何在執行期取得自身資訊的。如果傳乙個物件給你,你可以查出它有什麼能力,這是一項強大的特性。

物件導向程式設計(OOP)

物件導向程式設計 object oriented programming 作為一種新方法,其本質是以建立模型體現出來的抽象思維過程和物件導向的方法。模型是用來反映現實世界中事物特徵的。任何乙個模型都不可能反映客觀事物的一切具體特徵,只能對 事物特徵和變化規律的一種抽象,且在它所涉及的範圍內更普遍 更...

OOP物件導向程式設計

oop 達到了軟體工程的三個主要目標 重用性 靈活性和擴充套件性。元件 資料和功能一起在執行著的電腦程式中形成的單元,元件在 oop 電腦程式中是模組和結構化的基礎。抽象性 程式有能力忽略正在處理中資訊的某些方面,即對資訊主要方面關注的能力。封裝 也叫做資訊封裝 確保元件不會以不可預期的方式改變其它...

OOP 物件導向程式設計

作用 建立物件 初始化 基本概念 1.方法名和類名一致 2.沒有返回值宣告 3.呼叫 使用 new 關鍵字,本類中呼叫使用 this 4.預設有乙個無參構造,當宣告了乙個構造方法後,預設的不再提供 1.在乙個類中,方法名相同 2.引數列表不一樣 型別 順序 數量,跟引數名無關 3.跟返回值無關 三大...