首頁  >  文章  >  後端開發  >  詳解Python中綁定與未綁定的類別方法用法分析

詳解Python中綁定與未綁定的類別方法用法分析

高洛峰
高洛峰原創
2017-03-06 13:45:281056瀏覽

本文實例講述了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中綁定與未綁定的類別方法用法分析相關文章請關注PHP中文網!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn