Re: [问题] @property

楼主: tsaiminghan (tsaiminghan)   2022-09-01 09:47:02
经过前面网友的提醒,我之前把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
==========================
作者: poototo (poototo)   2022-09-01 20:32:00
可以这样方便记忆,但观念上建议还是做点区分class内的物件都是在造class过程中会一并建立的成员物件但def内的变量,只在def执行时才建立所以你可以对class的成员做存取,inner func就只能走闭包class是建立一个名称空间来管理成员的参照集合,就是api而且成员中的def,实际上的type是method调用时的行为跟一般def不一样,后者的type是functioninner func的scope可以参考到parent func的scope但method的scope不行直接参考class下的scope可是method的参数默认值又可以直接使用class的成员
楼主: tsaiminghan (tsaiminghan)   2022-09-02 00:55:00
谢谢. 你说的说明,对我而言蛮清楚的

Links booklink

Contact Us: admin [ a t ] ucptt.com