????:python中一切皆為對(duì)象,所謂對(duì)象:我自己就是一個(gè)對(duì)象,我玩的電腦就是對(duì)象,坐著的椅子就是對(duì)象,家里養(yǎng)的小狗也是一個(gè)對(duì)象。。。。。。我們通過(guò)描述屬性(特征)和行為來(lái)描述一個(gè)對(duì)象的。比如家里的小狗,它的顏色,大小,年齡,體重等是它的屬性或特征。它會(huì)汪汪叫,會(huì)搖尾巴等是它的行為。我們?cè)诿枋鲆粋€(gè)真實(shí)對(duì)象(物體)時(shí)包括兩個(gè)方面:它可以做什么(行為)它是什么樣的(屬性或特征)。在python中,一個(gè)對(duì)象的
python中一切皆為對(duì)象,所謂對(duì)象:我自己就是一個(gè)對(duì)象,我玩的電腦就是對(duì)象,坐著的椅子就是對(duì)象,家里養(yǎng)的小狗也是一個(gè)對(duì)象。。。。。。
我們通過(guò)描述屬性(特征)和行為來(lái)描述一個(gè)對(duì)象的。比如家里的小狗,它的顏色,大小,年齡,體重等是它的屬性或特征。它會(huì)汪汪叫,會(huì)搖尾巴等是它的行為。
我們?cè)诿枋鲆粋€(gè)真實(shí)對(duì)象(物體)時(shí)包括兩個(gè)方面:
它可以做什么(行為)
它是什么樣的(屬性或特征)。
在python中,一個(gè)對(duì)象的特征也稱(chēng)為屬性(attribute)。它所具有的行為也稱(chēng)為方法(method)
結(jié)論:對(duì)象=屬性+方法
在python中,把具有相同屬性和方法的對(duì)象歸為一個(gè)類(lèi)(class)
比如人類(lèi),動(dòng)物,植物等等,這些都是類(lèi)的概念。
類(lèi)是對(duì)象的模板或藍(lán)圖,類(lèi)是對(duì)象的抽象化,對(duì)象是類(lèi)的實(shí)例化。類(lèi)不代表具體的事物,而對(duì)象表示具體的事物。
>>> class people: ... def speak(self): ... print ("hello!") ... '''
定義一個(gè)people類(lèi),定義一個(gè)speak方法,但沒(méi)有定義屬性,
因?yàn)閷傩圆粚儆陬?lèi),而是屬于各個(gè)類(lèi)的實(shí)例。也就是說(shuō)屬于對(duì)象。
因此我們可以給每個(gè)實(shí)例設(shè)置不同的屬性
''' >>> class people: #類(lèi) ... def speak(self): #方法 ... print ("hello!") ... >>> >>> jack = people() #創(chuàng)建jack實(shí)例 >>> tom = people() #創(chuàng)建tom實(shí)例 >>> import tab #導(dǎo)入table鍵功能模塊 >>> jack. #輸入jack.,可以看到以下方法 jack.__class__ jack.__doc__ jack.__module__ jack.speak( >>> jack.speak() #引用speak方法 hello! >>> jack.age=39 #添加age屬性 >>> jack.height=120 #添加height屬性 >>> jack. jack.__class__ jack.__module__ jack.height jack.__doc__ jack.age jack.speak( >>> jack.height 120 >>> jack.age 39 '''
#初始化對(duì)象
創(chuàng)建類(lèi)時(shí),可以定義一個(gè)特定的方法,名為_(kāi)_init__(),只要?jiǎng)?chuàng)建這個(gè)類(lèi)的一個(gè)實(shí)例
就會(huì)運(yùn)行這個(gè)方法??梢韵騙_init__()方法傳遞參數(shù),
這樣創(chuàng)建對(duì)象時(shí)就可以把屬性設(shè)置為你希望的值
__init__()這個(gè)方法會(huì)在創(chuàng)建對(duì)象時(shí)完成初始化,
''' >>> class peo: ... def __init__(self,name,age,sex): ... self.Name = name ... self.Age = age ... self.Sex = sex ... def speak(self): ... print "my name" + self.Name ... >>>
實(shí)例化這個(gè)類(lèi)的對(duì)象時(shí):
>>> zhangsan=peo("zhangsan",24,'man') >>> print zhangsan.Age 24 >>> print zhangsan.Name zhangsan >>> print zhangsan.Sex man # ---------- >>> print zhangsan <__main__.peo instance at 0x7fe5041ec248> '''
要讓print能打印出來(lái),就得使用__str__方法
__str__()這個(gè)方法告訴python在打印(print)一個(gè)對(duì)象時(shí),具體顯示什么內(nèi)容
''' #! /usr/bin/python class peo: def __init__(self,name,age,sex): self.Name = name self.Age = age self.Sex = sex def speak(self): print "my name" + self.Name def __str__(self): msg='my name is: ' +self.Name+ ","+ "my age is: " + self.Age +','+ "my sex is:" +self.Sex # msg='my name is: ' +self.Name+ ","+ "my age is: " + str(self.Age) +','+ "my sex is:" +self.Sex return msg shanghai=peo('shanghai','23','man') # shanghai=peo('shanghai',23,'man') ''' msg='my name is: ' +self.Name+ ","+ "my age is: " + self.Age +','+ "my sex is:" +self.Sex
此處23是年齡,但被轉(zhuǎn)成了字符串,因?yàn)閟elf.Age定義的是字符串
如果不將23轉(zhuǎn)義,則會(huì)報(bào)錯(cuò)
如果希望在程序中就事先轉(zhuǎn)義,需要使用str(self.Age)
'''
print shanghai
'''
之前多次用到self這個(gè)形參
類(lèi)就好比是一張藍(lán)圖,使用一個(gè)類(lèi)可以創(chuàng)建多個(gè)對(duì)象實(shí)例,
speak()方法在被調(diào)用時(shí),必須知道是哪個(gè)對(duì)象調(diào)用了它.
這里self參數(shù)就會(huì)告訴方法是哪個(gè)對(duì)象來(lái)調(diào)用的.這稱(chēng)為實(shí)例引用。
zhangsan。speak()就好比寫(xiě)成了peo.speak(zhangsan)
'''
更多關(guān)于全面了解python中的類(lèi),對(duì)象,方法,屬性請(qǐng)關(guān)注PHP中文網(wǎng)(ipnx.cn)其他文章!