看板 Python 關於我們 聯絡資訊
經過前面網友的提醒,我之前把class的格式看得太死, 該把它想成跟一般函式一樣,裡面的def也可以在 class中使用 ========================= class A(object): @property def x(self): return self._x @x.setter def x(self, value): self._x = value ========================== 跟下面是同等的。 ========================== class A(object): def x(self): return self._x x = property(x) @x.setter def x(self, value): self._x = value ========================== -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.216.53.129 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1661996825.A.203.html
poototo: 可以這樣方便記憶,但觀念上建議還是做點區分 09/01 20:32
poototo: class內的物件都是在造class過程中會一併建立的成員物件 09/01 20:34
poototo: 但def內的變數,只在def執行時才建立 09/01 20:35
poototo: 所以你可以對class的成員做存取,inner func就只能走閉包 09/01 20:39
poototo: class是建立一個名稱空間來管理成員的參照集合,就是api 09/01 20:41
poototo: 而且成員中的def,實際上的type是method 09/01 20:55
poototo: 調用時的行為跟一般def不一樣,後者的type是function 09/01 20:55
poototo: inner func的scope可以參考到parent func的scope 09/01 21:10
poototo: 但method的scope不行直接參考class下的scope 09/01 21:11
poototo: 可是method的參數預設值又可以直接使用class的成員 09/01 21:21
tsaiminghan: 謝謝. 你說的說明,對我而言蠻清楚的 09/02 00:55