全面了解python中的類,對(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ì)象的特征也稱為屬性(attribute)。它所具有的行為也稱為方法(method)
結(jié)論:對(duì)象=屬性+方法
在python中,把具有相同屬性和方法的對(duì)象歸為一個(gè)類(class)
比如人類,動(dòng)物,植物等等,這些都是類的概念。
類是對(duì)象的模板或藍(lán)圖,類是對(duì)象的抽象化,對(duì)象是類的實(shí)例化。類不代表具體的事物,而對(duì)象表示具體的事物。
>>> class people: ... def speak(self): ... print ("hello!") ... '''
定義一個(gè)people類,定義一個(gè)speak方法,但沒(méi)有定義屬性,
因?yàn)閷傩圆粚儆陬悾菍儆诟鱾€(gè)類的實(shí)例。也就是說(shuō)屬于對(duì)象。
因此我們可以給每個(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 '''
#初始化對(duì)象
創(chuàng)建類時(shí),可以定義一個(gè)特定的方法,名為_(kāi)_init__(),只要?jiǎng)?chuàng)建這個(gè)類的一個(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è)類的對(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án)圖,使用一個(gè)類可以創(chuàng)建多個(gè)對(duì)象實(shí)例,
speak()方法在被調(diào)用時(shí),必須知道是哪個(gè)對(duì)象調(diào)用了它.
這里self參數(shù)就會(huì)告訴方法是哪個(gè)對(duì)象來(lái)調(diào)用的.這稱為實(shí)例引用。
zhangsan。speak()就好比寫成了peo.speak(zhangsan)
'''
以上這篇全面了解python中的類,對(duì)象,方法,屬性就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Scrapy將數(shù)據(jù)保存到Excel和MySQL中的方法實(shí)現(xiàn)
本文主要介紹了Scrapy將數(shù)據(jù)保存到Excel和MySQL中的方法實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02python中的信號(hào)通信 blinker的使用小結(jié)
信號(hào)是一種通知或者說(shuō)通信的方式,信號(hào)分為發(fā)送方和接收方,信號(hào)的特點(diǎn)就是發(fā)送端通知訂閱者發(fā)生了什么,今天通過(guò)本文給大家介紹python中的信號(hào)通信 blinker的相關(guān)知識(shí),感興趣的朋友一起看看吧2021-10-10Python全面解析json數(shù)據(jù)并保存為csv文件
這篇文章主要介紹了Python全面解析json數(shù)據(jù)并保存為csv文件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07Python?使用?pip?安裝?matplotlib?模塊的方法
matplotlib是python中強(qiáng)大的畫圖模塊,這篇文章主要介紹了Python?使用?pip?安裝?matplotlib?模塊(秒解版),本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02使用PyQt5設(shè)計(jì)GUI實(shí)現(xiàn)程序圖形界面設(shè)計(jì)
當(dāng)我們學(xué)會(huì)如何在pycharm中配置pyqt5設(shè)計(jì)GU之后,那么本文來(lái)帶你熟悉PyQt5設(shè)計(jì)GUI流程并為程序設(shè)計(jì)圖形界面,設(shè)計(jì)一個(gè)屬于自己的GUI2021-08-08python將圖片轉(zhuǎn)base64,實(shí)現(xiàn)前端顯示
今天小編就為大家分享一篇python將圖片轉(zhuǎn)base64,實(shí)現(xiàn)前端顯示,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01Python轉(zhuǎn)換字典成為對(duì)象,可以用"."方式訪問(wèn)對(duì)象屬性實(shí)例
這篇文章主要介紹了Python轉(zhuǎn)換字典成為對(duì)象,可以用"."方式訪問(wèn)對(duì)象屬性實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05NumPy中np.c_ 和 np.r_ 的區(qū)別小結(jié)
np.c_和?np.r_是NumPy庫(kù)中兩個(gè)非常有用的函數(shù),它們分別用于按列和按行拼接數(shù)組本文主要介紹了NumPy中np.c_ 和 np.r_ 的區(qū)別小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下2024-02-02利用Python腳本生成sitemap.xml的實(shí)現(xiàn)方法
最近項(xiàng)目中需要用腳本生成sitemap,中間學(xué)習(xí)了一下sitemap的格式和lxml庫(kù)的用法。把結(jié)果記錄一下,方便以后需要直接拿來(lái)用。下面這篇文章主要介紹了利用Python腳本生成sitemap.xml的實(shí)現(xiàn)方法,需要的朋友可以參考借鑒,一起來(lái)看看吧。2017-01-01Python正則表達(dá)式函數(shù)match()和search()使用全面指南
在Python中,正則表達(dá)式是強(qiáng)大的工具,能夠用于文本匹配、搜索和替換,re模塊提供了許多函數(shù)來(lái)處理正則表達(dá)式,其中match()和search()是兩個(gè)常用的函數(shù),本文將深入探討這兩個(gè)函數(shù)的用法、區(qū)別和示例,幫助你更好地理解它們的功能2024-01-01