講師回答 / 廖雪峰
如果你定義了一個函數:bar(self, a, b, c)你可以直接調用,注意self參數也要傳:bar(obj, 1, 2, 3)如果你把bar函數綁定到對象,你可以在對象上調用:foo.bar(1, 2, 3)注意self參數不能傳也不讓你傳,由解釋器自動傳入foo對象可以直接在class中定義方法,這樣每個實例自動綁定了該方法也可以在運行期給實例綁定方法,兩種方式都是等價的,因為python解釋器只不過把class的定義翻譯成“給實例綁定方法”的代碼
2015-03-08