是否有可能在python中创建一个与该类的成员变量名同名的属性.例如
Class X: ... self.i = 10 # marker ... property(fget = get_i, fset = set_i)
请告诉我如何才能这样做.因为如果我这样做,对于标记处的语句,我会得到assingm的堆栈溢出
是否有可能在python中创建一个与成员变量名同名的属性
编号属性,成员和方法都共享相同的命名空间.
标记处的语句我得到堆栈溢出
显然.你试图设置i,它调用属性i的setter,它试图设置i,它调用属性i的setter ... ad stackoverflowum.
通常的模式是通过在前缀"_"前面使后端值成员通常不公开:
class X(object): def get_i(self): return self._i def set_i(self, value): self._i= value i= property(get_i, set_i)
请注意,必须使用新式对象(子类'object')才能使'property'正常工作.