当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《创建一个与类成员名称同名的python属性》经验,为你挑选了1个好方法。

是否有可能在python中创建一个与该类的成员变量名同名的属性.例如

Class X:
    ...
    self.i = 10 # marker
    ...
    property(fget = get_i, fset = set_i)

请告诉我如何才能这样做.因为如果我这样做,对于标记处的语句,我会得到assingm的堆栈溢出



1> bobince..:

是否有可能在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'正常工作.


-1:忘记引用文档:http://docs.python.org/library/functions.html#property
推荐阅读
yzh148448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有