python類與對象

類是一種數(shù)據(jù)類型,而對象是具有這種數(shù)據(jù)類型的變量。類是抽象的,不占有內(nèi)存空間。而對象是具體的,占有儲層空間。

python中,通過class關(guān)鍵字定義類。
形式:

class className:
        類體

類體定義類的成員,有二種類型成員。一是數(shù)據(jù)成員,它描述問題的屬性。二是成員函數(shù),它描述問題的行為。

類是抽象的,要使用類定義的功能必須將類實(shí)例化,即創(chuàng)建對象。 對象名=類名(參數(shù)列表)

class Person:
    name=' '
    age=0
    def  display(self):
        print('name={0},age={1}'.format(self.name,self.age))

p=Person()
p.name='tom'
p.age=22
p.display()
              

結(jié)果

name=tom,age=22

面向?qū)ο?,具有繼承,抽象,封裝等特點(diǎn)
python中,定義的方法至少含一個(gè)參數(shù),一般默認(rèn)self(相當(dāng)于,其它語言的this吧),需要作為第一個(gè)參數(shù)。

類屬性就是類對象擁有的屬性,它被類對象共有,在內(nèi)存中只有一個(gè)副本

class Person:
    name=' '  #共有類屬性
    __age=0  #私有類屬性
    def setAge(self,a):
        self.__age=a
    def  display(self):
        print('name={0},age={1}'.format(self.name,self.__age))

p=Person()
#p.name='tom' 可以,但是不提倡
Person.name='tom'
p.setAge(22)
p.display()
              

類屬性,屬于類,既可以通過類訪問,也可以通過對象訪問,但是不建議通過對象訪問。

實(shí)例屬性, 不需要再類中顯示定義,而在init中構(gòu)造函數(shù)中定義,定義時(shí)以self為前綴。在其它方法也可以隨意添加實(shí)例對象對象,建議不這么做,最好在init中給出。

實(shí)例屬性屬于實(shí)例對象,只能通過對象訪問。

class Animal:
    def __init__(self,n,c):
        self.name=n #定義實(shí)例屬性
        self.color=c
    def display(self):
        print('name={0},color={1}'.format(self.name,self.color))

an=Animal('dog','black')
an.display()

name=dog,color=black

類的方法
類中的內(nèi)置方法, 在python中有一些內(nèi)置方法,這些方法名都有特殊的約定,以2個(gè)下劃線開始,2個(gè)下劃線結(jié)束, 類中最常用的就是構(gòu)造方法和析構(gòu)方法。

構(gòu)造方法 init(self,***) 在生成對象的時(shí)候調(diào)用,可以進(jìn)行一些屬性初始化操作,不需要顯示調(diào)用,系統(tǒng)會默認(rèn)執(zhí)行。構(gòu)造方法支持重載,如果用戶沒有定義新的構(gòu)造方法,系統(tǒng)會自動執(zhí)行默認(rèn)的構(gòu)造方法。

析構(gòu)方法 del(self)在釋放對象的時(shí)候調(diào)用,支持重載,不需要顯示調(diào)用。

class Animal:
    def __init__(self,n,c):
        self.name=n #定義實(shí)例屬性
        self.color=c
        print("執(zhí)行了構(gòu)造函數(shù)")

    def __del__(self):
        print("執(zhí)行了析構(gòu)函數(shù)")
    def display(self):
        print('name={0},color={1}'.format(self.name,self.color))

an=Animal('dog','black')
an.display()
del an

結(jié)果是:

執(zhí)行了構(gòu)造函數(shù)
name=dog,color=black
執(zhí)行了析構(gòu)函數(shù)

分2部分吧。。。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容