我正在尝试学习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
答案 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