Python中繫結與未繫結的類方法

2021-09-08 05:37:24 字數 825 閱讀 7601

**

像函式一樣,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裡有兩種風格 未繫結的類方法 沒有self 通過類來引用方法返回乙個未繫結方法物件。要呼叫它,你必須顯示地提供乙個例項作為第乙個引數。繫結的例項方法 有self 通過例項訪問方法返回乙個繫結的...

python類的繫結方法與非繫結方法

一 繫結方法 首先我們明確乙個知識點,凡是類中的方法或函式,預設情況下都是繫結給物件使用的。下面,我們通過例項,來慢慢解析繫結方法的應用。class people def init self,name,age self.name name self.age age deftalk self pass...

python繫結方法,未繫結,可呼叫物件型別

函式物件,方法物件,繫結,未繫結 自省 python中的可呼叫物件型別 無論函式還是方法都是物件 未繫結 class.method 沒有self 繫結 object.method 自動傳入self 3.0後 未繫結的函式 方法 就是乙個普通函式 class testclass def method ...