使用与类成员名称相同的名称创建一个python属性

使用与类成员名称相同的名称创建一个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) 

注意,您必须对“使用新型的对象(子类的“对象”)财产'正常工作。

+0

+1,打我吧:) – Kiv 2009-02-27 14:11:14