Python 物件導向程式設計

2021-08-30 17:57:05 字數 3249 閱讀 2817

兩種程式設計思想:

面向過程程式設計

最小單位是: 函式 function

物件導向的程式設計:

最小單位是: 類 class

什麼是物件:

物件是指現實中的物體或實體

什麼是物件導向

把一切看成物件(例項) 用各種物件之間的關係來描述事物

物件都有什麼特徵:

物件有很多的屬性(名詞,形容詞)

姓名, 年齡, 性別, 頭髮顏色

物件有很多行為(動作,動詞)

學習,吃飯,睡覺,踢球,工作

什麼是類

擁有相同屬性和行為的物件分為一組,即為乙個類

類是用來描述物件的工具,用類可以建立此類的物件(例項)

示意:車(類) ----> byd e6(京a.88888) 例項

\\--> bmw x5(京b.00000) 物件(例項)

狗(類) ----> 小京巴(戶籍號: 000001) 物件

\\---> 導盲犬(戶籍號:00002) 物件

int(類) -----> 100 物件

\\---> 200 物件

語法:

class 類名(繼承列表):

'''類的文件字串'''

例項方法(類內的函式method)定義

類變數類方法(@classmethod)

靜態方法(@staticmethod)

作用: 建立乙個類

類用於描述物件的行為和屬性

類用於建立此類的乙個或多個物件(例項)

說明: 類名必須是識別符號

類名實質是變數,它繫結乙個類

格式:

類名([傳參列表])

作用: 建立這個類的例項物件,並返回此例項物件的引用關係

說明: 物件(例項)可以呼叫類方法和例項方法

物件(例項) 有自己的作用域和名字空間,可以為該例項新增

例項變數(也叫例項屬性)

定義格式:

class 類名(繼承列表):

def 例項方法名(self, 引數1, 引數2, ...):

'''方法的文件字串'''

語句塊作用: 用於描述乙個物件的行為,讓此型別的全部物件都擁有相同

的行為說明: 例項方法的實質是函式,是定義在內類的函式

例項方法至少有乙個形參,第乙個形參繫結呼叫此方法的實

例,一般命名為'self'

例項方法的呼叫語法:

例項.例項方法名(呼叫傳參)

或 類名.例項方法名(例項, 呼叫傳參)

每個例項可以用自己的變數來記錄每個物件自己的資料,這個

變數稱為例項變數

使用語法:

例項.屬性名

賦值規則:

首次為屬性賦值則建立此屬性

再次為屬性賦值則改變此屬性的繫結關係

作用: 記錄每個物件自身的資料

刪除屬性:

del 語句

del 物件.例項變數名

del 語句總結:

1) 刪除變數 del a,b,c

2) 刪除列表中的元素 del l[0], l[0:3]

3) 刪除字典中的鍵 del d['name']

4) 刪除屬性 del obj.name

作用:

對新建立的物件新增屬性

語法格式:

class 類名(繼承列表):

def __init__(self [,形參列表])

語句塊注:代表其中的內容可省略

說明: 1. 初始化方法的名必須是 '__init__' 不可改變

2. 初始化方法會在建構函式建立例項後自動呼叫,且將實

例自身通過第乙個引數self傳入'__init__' 方法

3. 建構函式的實參將通過__init__方法的引數列表傳

入到__init__方法中

4. 初始化方法內如果需要return 返回,則必須返回none

格式:

class 類名(繼承列表):

def __del__(self):

....

作用: 在此物件銷毀前釋放此物件所占用的資源

說明: 析構方法在物件被銷毀前被自動呼叫

python語言建議不要在物件銷毀時做任何事情,因為銷毀

的時間難以確定

預置例項屬性

__dict__ 屬性

__dict__屬性繫結乙個儲存此例項自身變數的字典

示例:

class dog:

pass

dog1 = dog()

print(dog1.__dict__) # {}

dog1.color = "白色"

print(dog1.__dict__) #

__class__ 屬性

__class__ 屬性繫結建立此例項的類

作用: 可以借助於此屬性來訪問建立此例項的類

示例:

class dog:

pass

dog1 = dog()

print(dog1.__class__)

dog2 = dog1.__class__() # dog()

用於例項物件的函式:

isinstance(obj, class_or_tuple)  返回這個物件obj

是否是某個類的物件,或者某些類中乙個類的物件.如果

是則返回true,否則返回false

type(obj) 返回物件的型別

示例:

class dog:

pass

dog1 = dog()

isinstance(dog1, dog) # true

isinstance([1,2,3], dog) # false

isinstance([1, 2, 3], (int, str)) # false

isinstance([1, 2, 3], (int, str, list))#true

type(dog1) is dog # true

python 物件導向程式設計

新式類 class mynewobjecttype bases define mynewobjecttype class class suite經典類 沒有指定乙個父類,或者子類化的基本類沒有父類,就建立了乙個經典類 class mynewobjecttype define mynewobjectt...

Python物件導向程式設計

class mynewobjecttype bases define mynewobjecttype class class suite例項化 myfirstobject mynewobjecttype class mydatawithmethod object defprintfoo self p...

python物件導向程式設計

程式設計正規化 程式設計時程式設計師用特定的語法 資料結構 演算法組成的 在計算機上執行任務的過程。實現乙個任務有不同的方式,對這些不同的程式設計方式的特點進行歸納總結得出的程式設計方式類別,即為程式設計正規化。不同的程式設計正規化本質上代表對各種型別的任務採取的不同的解決問題的思路,兩種最重要的程...