サマリー:python中一切皆為對象,所謂對象:我自己就是一個(gè)對象,我玩的電腦就是對象,坐著的椅子就是對象,家里養(yǎng)的小狗也是一個(gè)對象。。。。。。我們通過描述屬性(特征)和行為來描述一個(gè)對象的。比如家里的小狗,它的顏色,大小,年齡,體重等是它的屬性或特征。它會汪汪叫,會搖尾巴等是它的行為。我們在描述一個(gè)真實(shí)對象(物體)時(shí)包括兩個(gè)方面:它可以做什么(行為)它是什么樣的(屬性或特征)。在python中,一個(gè)對象的
python中一切皆為對象,所謂對象:我自己就是一個(gè)對象,我玩的電腦就是對象,坐著的椅子就是對象,家里養(yǎng)的小狗也是一個(gè)對象。。。。。。
我們通過描述屬性(特征)和行為來描述一個(gè)對象的。比如家里的小狗,它的顏色,大小,年齡,體重等是它的屬性或特征。它會汪汪叫,會搖尾巴等是它的行為。
我們在描述一個(gè)真實(shí)對象(物體)時(shí)包括兩個(gè)方面:
它可以做什么(行為)
它是什么樣的(屬性或特征)。
在python中,一個(gè)對象的特征也稱為屬性(attribute)。它所具有的行為也稱為方法(method)
結(jié)論:對象=屬性+方法
在python中,把具有相同屬性和方法的對象歸為一個(gè)類(class)
比如人類,動(dòng)物,植物等等,這些都是類的概念。
類是對象的模板或藍(lán)圖,類是對象的抽象化,對象是類的實(shí)例化。類不代表具體的事物,而對象表示具體的事物。
>>> class people: ... def speak(self): ... print ("hello!") ... '''
定義一個(gè)people類,定義一個(gè)speak方法,但沒有定義屬性,
因?yàn)閷傩圆粚儆陬?,而是屬于各個(gè)類的實(shí)例。也就是說屬于對象。
因此我們可以給每個(gè)實(shí)例設(shè)置不同的屬性
''' >>> class people: #類 ... 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 '''
#初始化對象
創(chuàng)建類時(shí),可以定義一個(gè)特定的方法,名為__init__(),只要?jiǎng)?chuàng)建這個(gè)類的一個(gè)實(shí)例
就會運(yùn)行這個(gè)方法??梢韵騙_init__()方法傳遞參數(shù),
這樣創(chuàng)建對象時(shí)就可以把屬性設(shè)置為你希望的值
__init__()這個(gè)方法會在創(chuàng)建對象時(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è)類的對象時(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能打印出來,就得使用__str__方法
__str__()這個(gè)方法告訴python在打印(print)一個(gè)對象時(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)義,則會報(bào)錯(cuò)
如果希望在程序中就事先轉(zhuǎn)義,需要使用str(self.Age)
'''
print shanghai
'''
之前多次用到self這個(gè)形參
類就好比是一張藍(lán)圖,使用一個(gè)類可以創(chuàng)建多個(gè)對象實(shí)例,
speak()方法在被調(diào)用時(shí),必須知道是哪個(gè)對象調(diào)用了它.
這里self參數(shù)就會告訴方法是哪個(gè)對象來調(diào)用的.這稱為實(shí)例引用。
zhangsan。speak()就好比寫成了peo.speak(zhangsan)
'''
更多關(guān)于全面了解python中的類,對象,方法,屬性請關(guān)注PHP中文網(wǎng)(ipnx.cn)其他文章!