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