Python中物件導向的基本理論(一)

2022-09-17 21:45:25 字數 3358 閱讀 1783

萬物皆物件

物件是具體物體:

擁有屬性

擁有行為

把很多零散的東西,封裝成乙個整體

舉例:小王:

屬性:身高、體重……

行為:走路、吃飯、放羊……

python是一門特別徹底的物件導向程式設計(oop)的語言

兩者都是一種解決問題的思路

面向過程:在解決問題的過程中,關注的是解決問題的每乙個過程(步驟)

物件導向:在解決問題的過程中,關注的是解決問題的物件

舉個例子:

做好飯之後洗碗

對比:物件導向本身是面向過程的封裝

面向過程程式設計最重要的是什麼?    分解步驟的能力

物件導向程式設計最重要的是什麼?    把哪些功能劃分到哪個物件

如何從面向過程程式設計的思想,轉變到物件導向的程式設計思想

某乙個具體物件特徵的抽象

舉例:

根據抽象的類,產生具體的物件

例如:

名稱、屬性、方法。

屬性是靜態的,方法是動態的

一定要注意:以上屬性和方法,都是抽象的概念

在產生物件之後,物件才擁有具體的屬性值,和方法實現。

物件 抽象 類 例項化 物件

#新式類

#經典類

#定義乙個經典類,類的定義也會占用記憶體

class money:

pass

print(money)

#根據這個類,例項化乙個物件

one = money()

print(one)

區別:

概念:

變數是"可以改變的全值"

屬性是"居於某個物件的特性"

訪問許可權:

變數:根據不同的位置,存在不同的訪問許可權(全域性變數、區域性變數)

屬性:只能通過物件來進行訪問。(必須先找到物件,物件也是通過變數名來引用;而既然是變數,也有對應的訪問許可權)

判斷依據:

是否存在宿主

怎樣讓乙個物件擁有一些屬性?(增)

直接通過物件,動態新增 (語法:物件.屬性 = 值)

通過類的初始化方法(構造方法) _init_方法

print(one.__dict__) 列印這個物件的所有屬性

怎樣訪問乙個物件的屬性? (查)

刪除: del one (刪除一整個物件) del one.age (刪除這個屬性)

萬物皆物件,類也是乙個物件

給類增加、修改屬性

注意:不能通過類例項化的物件增加或者修改類的屬性

限制類中例項化物件屬性的新增:

在類的定義中,新增 __slots__ = ["age"]

描述乙個目標的行為動作

和函式非常類似:

都封裝了一系列的行為動作

被呼叫之後,都可以執行一系列的行為動作

最主要的區別就是:呼叫方式

例項方法:預設第乙個引數需要接收到乙個例項

類方法:預設第乙個引數需要接收到乙個類        

靜態方法:靜靜的看著前面倆裝逼,乙個引數啥也不預設接收

注意:

劃分的依據是:法的第乙個引數必須要接收的教據型別

不管是哪一種型別的方法,都是儲存在類當中;沒有在例項當中的

不同型別方法的呼叫方式不同。

三種不同的方法,都是儲存在類裡面,而不是例項化的物件裡面。不管是自己傳遞,還是直譯器幫我們處理;最終要保證不同型別的方法第乙個引數接收到的資料,是他們想要的型別

使用:語法

不同類的方法的規則

不同型別方法的呼叫

根據不同的問題,自己決定,到底該設計怎樣的方法來解決問題

例項方法:預設第乙個引數需要接收到乙個例項

一般在例項方法,至少得有乙個引數,而且一般情況下我們的乙個形參名稱寫的是self,(其實形參名稱可以是任意值)寫self表示往後這裡會接受乙個例項本身。

class person:

def eat(self,food):

print("在吃飯,", self , food)

p=person(

p.eat("土豆")

標準呼叫:使用例項呼叫例項方法·不用手動傳,直譯器會自動把呼叫物件本身傳遞過去

注意·如果例項方法沒有接收任何引數,則會報錯

其他呼叫:使用類呼叫

間接呼叫

本質就是直接找到函式本身來呼叫

類方法:預設第乙個引數需要接收到乙個類

需要用裝飾器定義

class person:

@classmethod

def leifangfa(cls, a):

print("這是乙個類方法", cls , a )

person.leifangfa(123)

p = person()

p,leifangfa(666)

(裝飾器的作用:在保證原本函式不改變的前提下.直接給這個函式增加一些功能)

靜態方法:靜靜的看著前面倆裝逼,乙個引數啥也不預設接收

需要用裝飾器定義

class person :

@staticmethod

def jingtai():

print("這是乙個靜態方法")

Python 物件導向的基本使用

建立類 使用class語句來建立乙個新類,class之後為類的名稱並以冒號結尾,如下例項 class classname 類的幫助資訊 類文件字串 class suite 類體1.類的幫助資訊可以通過classname.doc 檢視 2.class suite 由類成員,方法,資料屬性組成 例項 以...

python中的物件導向

一 什麼是類 關鍵字 class 規則同變數名 規範 一般使用大駝峰表示 單詞首字母大寫 class 類名 屬性方法 二 什麼是物件 物件就是某個類的具體的乙個例項。根據資料型別建立乙個物件,這個過程就叫做例項化。類名 三 類的屬性 直接定義在類中的變數 就是類屬性。訪問類屬性 類名.屬性名 物件....

python中 物件導向

1,物件導向 定義 與面向過程對比 官方定義 程式語言 2,物件導向語法 class 類名 內容3,例項 定義類 class person 行為通過方法體現 吃飯def eat self print 紅燒雞腿我喜歡吃 睡覺def sleep self print 睡覺也是一種生活態度 定義物件 li...