Python中繫結與未繫結的類方法用法分析

NO IMAGE

本文例項講述了Python中繫結與未繫結的類方法。分享給大家供大家參考,具體如下:

像函式一樣,Python中的類方法也是一種物件。由於既可以通過例項也可以通過類來訪問方法,所以在Python裡有兩種風格:

未繫結的類方法:沒有self

通過類來引用方法返回一個未繫結方法物件。要呼叫它,你必須顯示地提供一個例項作為第一個引數。

繫結的例項方法:有self

通過例項訪問方法返回一個繫結的方法物件。Python自動地給方法繫結一個例項,所以我們呼叫它時不用再傳一個例項引數。

兩種方法都是物件,它們可以被傳遞、存入列表等待。兩者執行時都需要一個例項作為第一引數(妤一個self值),但當通過一個例項呼叫一個繫結方法時Python自動會提供一個。例如我們執行如下的程式碼:


class Test:
  def func(self,message):
    print message
object1=Test()
x=object1.func
x('繫結方法物件,例項是隱含的')
t=Test.func
t(object1,'未繫結的方法物件,需要傳遞一個例項') 
#t('未繫結的方法物件,需要傳遞一個例項') #錯誤的呼叫

object1=Test()生成一個例項,object1.func返回一個繫結的方法,把例項object1和方法func繫結。

而Test.func是用類去引用方法,我們得到一個未繫結的方法物件。要呼叫它就得傳一個例項引數,如t(object1,’未繫結的方法物件,需要傳遞一個例項’) 。

大多數時候,我們都直接呼叫方法,所以一般不會注意到方法物件。但是如果開始寫通用的呼叫物件的程式碼時,需要特別仔細地注意未繫結方法,它們需要地傳一個例項引數。

更多關於Python相關內容可檢視本站專題:《Python正規表示式用法總結》、《Python資料結構與演算法教程》、《Python Socket程式設計技巧總結》、《Python函式使用技巧總結》、《Python字串操作技巧彙總》、《Python入門與進階經典教程》及《Python檔案與目錄操作技巧彙總

希望本文所述對大家Python程式設計有所幫助。

您可能感興趣的文章:

學習python類方法與物件方法介紹Python中幾個常用的類方法Python類方法__init__和__del__構造、析構過程分析python的類方法和靜態方法Python實現多行註釋的另類方法python中的例項方法、靜態方法、類方法、類變數和例項變數淺析