Python中綁定與未綁定的類(lèi)方法用法分析
本文實(shí)例講述了Python中綁定與未綁定的類(lèi)方法。分享給大家供大家參考,具體如下:
像函數(shù)一樣,Python中的類(lèi)方法也是一種對(duì)象。由于既可以通過(guò)實(shí)例也可以通過(guò)類(lèi)來(lái)訪(fǎng)問(wèn)方法,所以在Python里有兩種風(fēng)格:
未綁定的類(lèi)方法:沒(méi)有self
通過(guò)類(lèi)來(lái)引用方法返回一個(gè)未綁定方法對(duì)象。要調(diào)用它,你必須顯示地提供一個(gè)實(shí)例作為第一個(gè)參數(shù)。
綁定的實(shí)例方法:有self
通過(guò)實(shí)例訪(fǎng)問(wèn)方法返回一個(gè)綁定的方法對(duì)象。Python自動(dòng)地給方法綁定一個(gè)實(shí)例,所以我們調(diào)用它時(shí)不用再傳一個(gè)實(shí)例參數(shù)。
兩種方法都是對(duì)象,它們可以被傳遞、存入列表等待。兩者運(yùn)行時(shí)都需要一個(gè)實(shí)例作為第一參數(shù)(妤一個(gè)self值),但當(dāng)通過(guò)一個(gè)實(shí)例調(diào)用一個(gè)綁定方法時(shí)Python自動(dòng)會(huì)提供一個(gè)。例如我們運(yùn)行如下的代碼:
class Test: def func(self,message): print message object1=Test() x=object1.func x('綁定方法對(duì)象,實(shí)例是隱含的') t=Test.func t(object1,'未綁定的方法對(duì)象,需要傳遞一個(gè)實(shí)例') #t('未綁定的方法對(duì)象,需要傳遞一個(gè)實(shí)例') #錯(cuò)誤的調(diào)用
object1=Test()生成一個(gè)實(shí)例,object1.func返回一個(gè)綁定的方法,把實(shí)例object1和方法func綁定。
而Test.func是用類(lèi)去引用方法,我們得到一個(gè)未綁定的方法對(duì)象。要調(diào)用它就得傳一個(gè)實(shí)例參數(shù),如t(object1,'未綁定的方法對(duì)象,需要傳遞一個(gè)實(shí)例') 。
大多數(shù)時(shí)候,我們都直接調(diào)用方法,所以一般不會(huì)注意到方法對(duì)象。但是如果開(kāi)始寫(xiě)通用的調(diào)用對(duì)象的代碼時(shí),需要特別仔細(xì)地注意未綁定方法,它們需要地傳一個(gè)實(shí)例參數(shù)。
更多關(guān)于Python相關(guān)內(nèi)容可查看本站專(zhuān)題:《Python正則表達(dá)式用法總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門(mén)與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
基于Pydantic封裝的通用模型在API請(qǐng)求驗(yàn)證中的應(yīng)用詳解
這篇文章主要介紹了基于Pydantic封裝的通用模型在API請(qǐng)求驗(yàn)證中的應(yīng)用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2023-05-05Python使用combinations實(shí)現(xiàn)排列組合的方法
今天小編就為大家分享一篇Python使用combinations實(shí)現(xiàn)排列組合的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-11-11使用Flask開(kāi)發(fā)RESTful?API的方法實(shí)現(xiàn)
RESTful?API是一種基于REST架構(gòu)風(fēng)格設(shè)計(jì)的Web服務(wù)接口,本文主要介紹了使用Flask開(kāi)發(fā)RESTful?API的方法實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2023-11-11Python練習(xí)之讀取XML節(jié)點(diǎn)和屬性值的方法
這篇文章主要介紹了Python練習(xí)之讀取XML節(jié)點(diǎn)和屬性值的方法,通過(guò)parse函數(shù)可以讀取XML文檔,該函數(shù)返回ElementTree類(lèi)型的對(duì)象,通過(guò)該對(duì)象的iterfind方法可以對(duì)XML中特定節(jié)點(diǎn)進(jìn)行迭代2022-06-06Python數(shù)據(jù)處理-導(dǎo)入導(dǎo)出excel數(shù)據(jù)
這篇文章主要介紹了Python數(shù)據(jù)處理-導(dǎo)入導(dǎo)出excel數(shù)據(jù),Python的一大應(yīng)用就是數(shù)據(jù)分析了,而數(shù)據(jù)分析中,經(jīng)常碰到需要處理Excel數(shù)據(jù)的情況。這里做一個(gè)Python處理Excel數(shù)據(jù)的總結(jié),需要的小伙伴可以參考一下2022-01-01