Python 繫結與未繫結方法通俗講解

2021-09-08 10:37:53 字數 831 閱讀 6192

像函式一樣,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繫結方法,未繫結,可呼叫物件型別

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

Python教程 繫結方法與非繫結方法

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