Python中綁定與未綁定的類方法用法分析
本文實(shí)例講述了Python中綁定與未綁定的類方法。分享給大家供大家參考,具體如下:
像函數(shù)一樣,Python中的類方法也是一種對象。由于既可以通過實(shí)例也可以通過類來訪問方法,所以在Python里有兩種風(fēng)格:
未綁定的類方法:沒有self
通過類來引用方法返回一個(gè)未綁定方法對象。要調(diào)用它,你必須顯示地提供一個(gè)實(shí)例作為第一個(gè)參數(shù)。
綁定的實(shí)例方法:有self
通過實(shí)例訪問方法返回一個(gè)綁定的方法對象。Python自動(dòng)地給方法綁定一個(gè)實(shí)例,所以我們調(diào)用它時(shí)不用再傳一個(gè)實(shí)例參數(shù)。
兩種方法都是對象,它們可以被傳遞、存入列表等待。兩者運(yùn)行時(shí)都需要一個(gè)實(shí)例作為第一參數(shù)(妤一個(gè)self值),但當(dāng)通過一個(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('綁定方法對象,實(shí)例是隱含的')
t=Test.func
t(object1,'未綁定的方法對象,需要傳遞一個(gè)實(shí)例')
#t('未綁定的方法對象,需要傳遞一個(gè)實(shí)例') #錯(cuò)誤的調(diào)用
object1=Test()生成一個(gè)實(shí)例,object1.func返回一個(gè)綁定的方法,把實(shí)例object1和方法func綁定。
而Test.func是用類去引用方法,我們得到一個(gè)未綁定的方法對象。要調(diào)用它就得傳一個(gè)實(shí)例參數(shù),如t(object1,'未綁定的方法對象,需要傳遞一個(gè)實(shí)例') 。
大多數(shù)時(shí)候,我們都直接調(diào)用方法,所以一般不會(huì)注意到方法對象。但是如果開始寫通用的調(diào)用對象的代碼時(shí),需要特別仔細(xì)地注意未綁定方法,它們需要地傳一個(gè)實(shí)例參數(shù)。
更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python正則表達(dá)式用法總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
OpenCV(python)版實(shí)現(xiàn)文本分割之水平投影法
本文主要介紹了OpenCV(python)版實(shí)現(xiàn)文本分割之水平投影法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08
Python中使用OpenCV庫來進(jìn)行簡單的氣象學(xué)遙感影像計(jì)算
這篇文章主要介紹了Python中使用OpenCV庫來進(jìn)行簡單的氣象學(xué)圖像計(jì)算的例子,文中是用來進(jìn)行光譜輻射定標(biāo)、大氣校正和計(jì)算反射率,需要的朋友可以參考下2016-02-02
python實(shí)現(xiàn)批量監(jiān)聽頁面并發(fā)送郵件
這篇文章主要為大家詳細(xì)介紹了python如何實(shí)現(xiàn)自動(dòng)化批量監(jiān)聽頁面并發(fā)送郵件,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-11-11
python 表達(dá)式和語句及for、while循環(huán)練習(xí)實(shí)例
下面小編就為大家?guī)硪黄猵ython 表達(dá)式和語句及for、while循環(huán)練習(xí)實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07
Python使用sftp實(shí)現(xiàn)上傳和下載功能
這篇文章主要為大家詳細(xì)介紹了Python使用sftp實(shí)現(xiàn)上傳和下載功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-04-04
Python?OpenCV實(shí)現(xiàn)簡單的顏色識別功能(對紅色和藍(lán)色識別并輸出)
Python?OpenCV可以用來進(jìn)行顏色識別,可以通過讀取圖像的像素值,來判斷像素點(diǎn)的顏色,從而實(shí)現(xiàn)顏色識別,這篇文章主要給大家介紹了關(guān)于Python?OpenCV實(shí)現(xiàn)簡單的顏色識別功能(對紅色和藍(lán)色識別并輸出)的相關(guān)資料,需要的朋友可以參考下2023-12-12
Python輸出由1,2,3,4組成的互不相同且無重復(fù)的三位數(shù)
這篇文章主要介紹了Python輸出由1,2,3,4組成的互不相同且無重復(fù)的三位數(shù),分享了相關(guān)代碼示例,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-02-02

