Python學習 物件導向程式設計

2021-10-23 08:31:02 字數 4164 閱讀 8954

物件導向:

現實——>具體的事物

程式——>物件

物件導向涉及的:類物件

屬性方法

物件:例如:小明的手機

小紅的手機

小綠的手機

。。。以上是物件的集合,某某某的手機就是具體的事物,在程式中就是物件。

從物件中提取共同的特徵或者特點,作為乙個類別屬性。

類別:手機類。

電腦類學生類

等等共同的特徵:品牌、顏色、**。。。。

共同的動作:打**、發簡訊、玩遊戲。。。

特徵就是屬性;

動作就是方法;

將屬性和方法封裝為某個類。

多個物件——>提取共同的特徵和動作——>封裝到乙個類中;這就是物件導向程式設計。

#所有的類名要求首字母大寫,多個單詞採用駝峰式命名

#python3中所有的類預設繼承object

'''class 類名(父類):

屬性:特徵

方法:動作

'''class

phone()

:pass

#屬性#方法

#使用類建立物件

phone1 = phone(

)print

(phone1)

<__main__.phone object at 0x000001af514e2988

>

process finished with exit code 0

可以看到phone1為乙個phone的物件。

類就好比乙個模具,利用模具建立乙個個實物,就是使用類建立物件。

新增類屬性:

新增類屬性,修改屬性;

class

phone()

: brand =

'huawei'

#屬性#方法

#使用類建立物件

phone1 = phone(

)print

(phone1)

print

(phone1.brand)

phone2 = phone(

)print

(phone2)

print

(phone2.brand)

phone2.brand =

'iphone'

print

(phone2.brand)

<__main__.phone object at 0x000001f446b63048

>

huawei

<__main__.phone object at 0x000001f446b63108

>

huawei

iphone

process finished with exit code 0

可以看到phone1的屬性品牌為huawei,phone2的屬性由huawei改為iphone。

#定義類和屬性

class

student()

:# 類屬性

name =

'xiaoming'

age =

2#使用類建立物件

xiaoming = student(

)print

(xiaoming.age)

xiaoming.age =

18#賦值操作,動態建立物件屬性

print

(xiaoming.age)

#程式底層操作順序,現在物件記憶體中查詢屬性,然後在類記憶體中查詢屬性

#若物件記憶體中由某個屬性,則不會再去類記憶體中查詢。

2

18

#修改類屬性,用類名操作

student.name =

'xiaolv'

print

(xiaoming.name)

xiaolv
3.類中的方法

#類中的方法:動作

#種類:普通方法、類方法、靜態方法、魔術方法

'''普通方法格式:

def 方法名(函式名)(self,[選填引數]):

pass

'''class

phone()

: brand =

'huawei'

price =

4999

type

='honor 30'

# phone類裡面的方法:call

defcall

(self)

:print

('正在打**。。。'

)print

(,self.note)

phone1 = phone(

)#類建立物件

phone1.note =

'我是phone1的note'

#新增物件的屬性

print

('====phone1*****='

,phone1)

#phone1.call(

)#呼叫物件的方法

phone2 = phone(

)phone2.note =

'我是phnoe2的note'

print

('====phone2===='

,phone2)

phone2.call(

)

self是自身的意思,call的引數為self,phone1.call()=call(phone1);那麼call方法中的self.note=phone1.note。

所以兩個輸出為各自的note。

#類中的方法:動作

#種類:普通方法、類方法、靜態方法、魔術方法

'''普通方法格式:

def 方法名(函式名)(self,[選填引數]):

pass

'''class

phone()

: brand =

'huawei'

price =

4999

type

='honor 30'

# phone類裡面的方法:call

defcall

(self)

:print

("正在訪問通訊錄。。。"

)for person in self.address_book:

print

(person.items())

print

('正在打**。。。'

)print

(,self.note)

phone1 = phone(

)phone1.note =

'我是phone1的note'

phone1.address_book =

print

('====phone1*****='

,phone1)

phone1.call(

)phone2 = phone(

)phone2.note =

'我是phnoe2的note'

print

('====phone2===='

,phone2)

phone2.call(

)

==

==phone1==

====

<__main__.phone object at 0x0000022817a46c48

>

正在訪問通訊錄。。。

dict_items([(

'1561231234'

,'xiaoming'),

('1561231235'

,'xiaolv')]

)正在打**。。。

====phone2==

==<__main__.phone object at 0x0000022817a46b48

>

正在訪問通訊錄。。。

process finished with exit code 1

如果只有單個物件具有某個屬性,程式會出錯,因為物件2沒有對應的屬性。如上結果,phone2並沒有對應的通訊錄,程式無法向下執行。

python學習 物件導向程式設計

物件導向程式設計 object oriented programming,簡稱oop,是一種程式設計思想。oop把物件作為程式的基本單元,乙個物件包含了資料和運算元據的函式。面向過程的程式設計把電腦程式視為一系列的命令集合,即一組函式的順序執行。為了簡化程式設計,面向過程把函式繼續切分為子函式,即把...

Python學習9 物件導向程式設計

廖雪峰的部落格 在物件導向程式設計中需要考慮 物件 屬性 方法,例項化。物件導向程式設計具有三大特點 資料封裝 繼承和多型 舉例 列印學生成績。處理學生的成績表,如果採用物件導向的程式設計思想,我們首選思考的不是程式的執行流程,而是student這種資料型別應該被視為乙個物件,這個物件擁有name和...

物件導向程式設計 python 學習筆記

物件導向程式設計 object oriented programming,簡稱oop,是一種程式設計思想。oop把物件作為程式的基本單元,乙個物件包含了資料和運算元據的函式。面向過程的程式設計把電腦程式視為一系列的命令集合,即一組函式的順序執行。為了簡化程式設計,面向過程把函式繼續切分為子函式,即把...