用于保护私有变量的Python属性方法

时间:2014-06-26 08:32:36

标签: python python-2.7

我正在尝试学习python的OOPS概念,现在我正在尝试学习如何在python中处理私有数据。我知道它可以使用" Property"方法,我执行下面的代码,但是当我尝试访问该属性时,它正在向我提出错误。

class Hello(object):

    def __init__(self, name):
        self.__name = name

    def __setname(self, name):
        self.__name = name
    def __getname(self):
        return self.__name
    name = property(__setname, __getname)
h = Hello("Saumya")
print h.name
TypeError: __setname() takes exactly 2 arguments (1 given)

任何人都可以帮助我,我哪里出错?

谢谢, Saumya

2 个答案:

答案 0 :(得分:1)

property函数首先获取getter,然后获取setter:

name = property(__getname, __setname)

答案 1 :(得分:0)

@michael

为你的提示付出了很多,下面是正确的代码: -

>>> class Hello(object):
def __init__(self, name):
    self.__name = name

    def __setname(self, name):
    self.__name = name
def __getname(self):
    return self.__name
    name = property(__getname, __setname)



>>> h = Hello("Saumya")
>>> print h.name
Saumya