物件導向:
現實——>具體的事物
程式——>物件
物件導向涉及的:類物件
屬性方法
物件:例如:小明的手機
小紅的手機
小綠的手機
。。。以上是物件的集合,某某某的手機就是具體的事物,在程式中就是物件。
從物件中提取共同的特徵或者特點,作為乙個類別屬性。
類別:手機類。
電腦類學生類
等等共同的特徵:品牌、顏色、**。。。。
共同的動作:打**、發簡訊、玩遊戲。。。
特徵就是屬性;
動作就是方法;
將屬性和方法封裝為某個類。
多個物件——>提取共同的特徵和動作——>封裝到乙個類中;這就是物件導向程式設計。
#所有的類名要求首字母大寫,多個單詞採用駝峰式命名
#python3中所有的類預設繼承object
'''class 類名(父類):
屬性:特徵
方法:動作
'''class
phone()
:pass
#屬性#方法
#使用類建立物件
phone1 = phone(
(phone1)
可以看到phone1為乙個phone的物件。<__main__.phone object at 0x000001af514e2988
>
process finished with exit code 0
類就好比乙個模具,利用模具建立乙個個實物,就是使用類建立物件。
新增類屬性:
新增類屬性,修改屬性;
class
phone()
: brand =
'huawei'
#屬性#方法
#使用類建立物件
phone1 = phone(
(phone1)
(phone1.brand)
phone2 = phone(
(phone2)
(phone2.brand)
phone2.brand =
'iphone'
(phone2.brand)
可以看到phone1的屬性品牌為huawei,phone2的屬性由huawei改為iphone。<__main__.phone object at 0x000001f446b63048
>
huawei
<__main__.phone object at 0x000001f446b63108
>
huawei
iphone
process finished with exit code 0
#定義類和屬性
class
student()
:# 類屬性
name =
'xiaoming'
age =
2#使用類建立物件
xiaoming = student(
(xiaoming.age)
xiaoming.age =
18#賦值操作,動態建立物件屬性
(xiaoming.age)
#程式底層操作順序,現在物件記憶體中查詢屬性,然後在類記憶體中查詢屬性
#若物件記憶體中由某個屬性,則不會再去類記憶體中查詢。
2
18
#修改類屬性,用類名操作
student.name =
'xiaolv'
(xiaoming.name)
xiaolv
3.類中的方法
self是自身的意思,call的引數為self,phone1.call()=call(phone1);那麼call方法中的self.note=phone1.note。#類中的方法:動作
#種類:普通方法、類方法、靜態方法、魔術方法
'''普通方法格式:
def 方法名(函式名)(self,[選填引數]):
pass
'''class
phone()
: brand =
'huawei'
price =
4999
type
='honor 30'
# phone類裡面的方法:call
defcall
(self)
('正在打**。。。'
(,self.note)
phone1 = phone(
)#類建立物件
phone1.note =
'我是phone1的note'
#新增物件的屬性
('====phone1*****='
,phone1)
#phone1.call(
)#呼叫物件的方法
phone2 = phone(
)phone2.note =
'我是phnoe2的note'
('====phone2===='
,phone2)
phone2.call(
)
所以兩個輸出為各自的note。
#類中的方法:動作
#種類:普通方法、類方法、靜態方法、魔術方法
'''普通方法格式:
def 方法名(函式名)(self,[選填引數]):
pass
'''class
phone()
: brand =
'huawei'
price =
4999
type
='honor 30'
# phone類裡面的方法:call
defcall
(self)
("正在訪問通訊錄。。。"
)for person in self.address_book:
(person.items())
('正在打**。。。'
(,self.note)
phone1 = phone(
)phone1.note =
'我是phone1的note'
phone1.address_book =
('====phone1*****='
,phone1)
phone1.call(
)phone2 = phone(
)phone2.note =
'我是phnoe2的note'
('====phone2===='
,phone2)
phone2.call(
)
如果只有單個物件具有某個屬性,程式會出錯,因為物件2沒有對應的屬性。如上結果,phone2並沒有對應的通訊錄,程式無法向下執行。==
==phone1==
====
<__main__.phone object at 0x0000022817a46c48
>
正在訪問通訊錄。。。
dict_items([(
'1561231234'
,'xiaoming'),
('1561231235'
,'xiaolv')]
)正在打**。。。
====phone2==
==<__main__.phone object at 0x0000022817a46b48
>
正在訪問通訊錄。。。
process finished with exit code 1
python學習 物件導向程式設計
物件導向程式設計 object oriented programming,簡稱oop,是一種程式設計思想。oop把物件作為程式的基本單元,乙個物件包含了資料和運算元據的函式。面向過程的程式設計把電腦程式視為一系列的命令集合,即一組函式的順序執行。為了簡化程式設計,面向過程把函式繼續切分為子函式,即把...
Python學習9 物件導向程式設計
廖雪峰的部落格 在物件導向程式設計中需要考慮 物件 屬性 方法,例項化。物件導向程式設計具有三大特點 資料封裝 繼承和多型 舉例 列印學生成績。處理學生的成績表,如果採用物件導向的程式設計思想,我們首選思考的不是程式的執行流程,而是student這種資料型別應該被視為乙個物件,這個物件擁有name和...
物件導向程式設計 python 學習筆記
物件導向程式設計 object oriented programming,簡稱oop,是一種程式設計思想。oop把物件作為程式的基本單元,乙個物件包含了資料和運算元據的函式。面向過程的程式設計把電腦程式視為一系列的命令集合,即一組函式的順序執行。為了簡化程式設計,面向過程把函式繼續切分為子函式,即把...