一、對象(objec)
1.什麼是對象?
對象是內存中專門用來存儲數據的一塊區域。對象中可以存放各種數據(如:數字,布爾值,代碼..)
對象由三部分組成:
a:對象的標識(id)
b:對象的類型(type)
c:對象的值(value)
2.面向對象(oop):
python是一門面向對象的編程語言。
面向對象的語言,就是語言中所有的操作都是通過對象來進行的。
--關注的是對象而不關注過程。
--對於面嚮對象語言來說,一切都是對象。
--面向對象的編程思想,將所有的功能統一保存到對應的對象中。要使用某個功能,直接找到對應的對象即可。
--這種方式編寫的代碼,比較容易閱讀,易於維護,可複用性強。
--但是這種方式的編寫,不符合常規思維,編寫起來稍微麻煩一點。
面向過程的語言:
指的是,將程序的邏輯分解成爲一個一個的步驟,通過對每個步驟的抽象,來完成程序。
--這種編程方式符合人類的思維,編寫起來相對簡單。
--通過完成一個一個小的步驟來完成一個程序,但是這種方式編寫代碼的往往只適用於一個功能。如果要實現別的功能,往往要重新編寫代碼,可複用性比較低,難於維護。
二、類(class)
--目前所學習的對象都是python內置的對象。
--但是內置對象並不能滿足所有的需求,所以我們開發中經常需要自定義一些對象。
--類,簡單理解它相當於一個圖紙。程序中我們需要根據類來創建對象。
--類就是對象的圖紙。稱對象是類的實例(instance)
--像是int()、float()、bool()、str()、list()、dict()...這些都是類。
a=int(10) 這屬於int類的實例,等價於a = 10
我們自定義的類都需要使用大寫字母開頭,使用大駝峯命名法(帕斯卡命名法)
--類也是一個對象,是用來創建對象的對象;類是type類型的對象。
三、對象的創建流程
1.創建一個變量mc
2.在內存中創建一個新對象
3.將對象的id賦值給變量
四、類的對象
--類和對象都是對現實生活中或程序中內容的抽象。
--實際上所有的事物都由兩部分構成:
1.數據(屬性)
2.行爲(方法)
在類的代碼塊中,我們可以定義變量和函數。
--變量會成爲該類實例的公共屬性,所有的該類實例都可以通過對象.屬性名的形式訪問。
--函數會成爲該類實例的公共方法,所有該類實例都可以通過 對象.方法名()的形式調用方法。
注意:方法調用時,第一個參數由解析器自動傳遞,所以定義方法默認傳遞一個參數,所以定義方法中至少要定義一個形參。
五、屬性和方法
1.實例爲什麼能訪問到類中的屬性和方法?
--類中定義的屬性和方法都是公共的,任何該類實例都可以訪問。
2.屬性和方法查找的流程?
--當我們調用一個對象的屬性時,解析器會先在當前對象中尋找是否含有該屬性,
如果有,則直接返回當前的對象的屬性值,
如果沒有,則去當前對象的類對象中去尋找,如果有則返回類的對象的屬性值,如果沒有則報錯!
3.類對象和實例對象都可以保存屬性(方法)
--如果這個屬性(方法)是所有的實例共享的,則應該將其保存到類對象中。
--如果這個屬性(方法)是某個實例獨有,則應該保存在實例對象中。
六、類的特殊方法init
1.創建對象的流程
--a:創建一個變量
--b:在內存中創建一個新對象
--c:__init__(self)方法執行
--d:將對象的id賦值給變量
2.類的基本結構
class類名([父類]) :
公共的屬性...
#對象的初始化方法
def_ init_ (self,....):
#其他的方法
def method_ 1(self,....):
def method_ 2(self,....):
...