使用与类成员名称相同的名称创建一个python属性
问题描述:
是否有可能在python中创建一个与该类的成员变量名称具有相同名称的属性。例如使用与类成员名称相同的名称创建一个python属性
Class X:
...
self.i = 10 # marker
...
property(fget = get_i, fset = set_i)
请告诉我我该怎么做。因为如果我这样做,在标记的声明,我得到堆栈溢出的assingm
答
是否有可能在python创建一个属性与同名的成员变量名
号属性,成员和方法都共享相同的命名空间。
的声明在标记我得到堆栈溢出
明显。你尝试设置我,它调用属性我的设置器,它试图设置我,它调用属性我的设置器...广告stackoverflowum。
通常的模式是使后端value成员传统上的非公开,通过与“_”前缀是:
class X(object):
def get_i(self):
return self._i
def set_i(self, value):
self._i= value
i= property(get_i, set_i)
注意,您必须对“使用新型的对象(子类的“对象”)财产'正常工作。
+1,打我吧:) – Kiv 2009-02-27 14:11:14