面向?qū)ο螅ㄉ希?br>
1.什么是面向?qū)ο?
面向?qū)ο笫且环N編程思想,就是一種解決問題的思路,將項目中不同的數(shù)據(jù)封裝成類型來進行使用聊记。是對面向過程的補充和完善。
面向?qū)ο笥腥筇卣鳎悍庋b片排、繼承、多態(tài)凛辣。
2.對象的概念:
萬物皆對象,通過屬性和行為來描述一個對象职烧。對象可以包含任意數(shù)量和類型的數(shù)據(jù)扁誓。
對象,就是實際存在的物體蚀之,也稱實體蝗敢,是類型表示的具體實際存在實物的實例化。
python中對象是通過類定義的數(shù)據(jù)結(jié)構(gòu)實例實現(xiàn)的恬总,即對象是類的實例化前普。Python中通過類和對象,以及對象之間的相互調(diào)用完成一定的功能壹堰,來體現(xiàn)面向?qū)ο蟮木幊趟枷搿?/p>
3.類的概念:
類就是類型、數(shù)據(jù)類型的簡稱骡湖,是從一部分實際存在具有相似的特征和行為的實物中抽象出來的一個概念贱纠。
4.類和對象的區(qū)別:
類是對象的抽象化,描述具有相同屬性和方法的所有對象的集合响蕴。
類不代表具體的事物谆焊,而對象表示具體的事物。
5.如何定義類
定義一個類的形式如下:
類一般有幾個組成部分:類型的名稱浦夷、屬性辖试、方法。
通過class關鍵字劈狐,來定義一個自定義類型
通過__init__()函數(shù)來初始化類的屬性數(shù)據(jù)
通過普通函數(shù)罐孝,定義類的行為方式。如:
注意類的方法的第一個參數(shù)永遠是self肥缔,self指向類的本身莲兢。
classPerson(object):#Person為類型的名稱
def __init__(self, name, sex, age):#name、sex、age為屬性改艇,__init__初始化數(shù)據(jù)
defmarry(self, person)#def marry為方法
類屬性定義
類的一般屬性:self.attrs
類的私有屬性:self.__private_attrs收班,以兩個下劃線開頭不能在類的外部被直接訪問的屬性,即無法在類實例化后直接訪問或引用該數(shù)據(jù)谒兄。
類方法定義
類的一般方法定義:def
func(self):
類屬性和類方法的比較
屬性一般意味著從內(nèi)存中直接拿出之前存儲的值摔桦。方法意味著需要一定的處理。
6.怎樣創(chuàng)建對象承疲?
和執(zhí)行函數(shù)一樣酣溃,直接通過類的名稱來創(chuàng)建對象,如:u = Users()
7.創(chuàng)建對象纪隙,怎樣使用對象屬性赊豌?
對象的屬性,可以直接通過對象的引用變量.屬性名稱來使用绵咱,如:u.username
8.創(chuàng)建的對象碘饼,怎樣使用對象的方法?
對象的方法悲伶,可以直接通過對象的引用變量.方法名稱()來調(diào)用方法
9.創(chuàng)建對象的過程是什么艾恼?
首先,創(chuàng)建對象麸锉,會調(diào)用對象的__new__()函數(shù)钠绍,來申請內(nèi)存,創(chuàng)建對象
其次花沉,給創(chuàng)建好的對象柳爽,初始化對象的數(shù)據(jù),自動調(diào)用__init__()函數(shù)碱屁,給對象的屬性賦值
10.創(chuàng)建好的對象磷脯,賦值給一個變量,變量是什么類型娩脾?存放的是什么數(shù)據(jù)赵誓?
變量=類名稱()創(chuàng)建了一個對象,將對象的引用地址柿赊,賦值給變量
變量(內(nèi)存地址)—>堆內(nèi)存中的對象
Type(變量)—>類類型
11.總結(jié):
面向?qū)ο缶幊淌且环N編程方式俩功,此編程方式的落地需要使用“類”和“對象”來實現(xiàn),所以碰声,面向?qū)ο缶幊唐鋵嵕褪菍Α邦悺焙汀皩ο蟆钡氖褂谩?/p>
類就是一個模板诡蜓,模板里可以包含多個函數(shù),函數(shù)里實現(xiàn)一些功能
對象則是根據(jù)模板創(chuàng)建的實例奥邮,通過實例對象可以執(zhí)行類中的函數(shù)