#python #python-2.7
#python #python-2.7
Вопрос:
Я пытаюсь изучить концепции OOPS на Python, а теперь пытаюсь научиться обрабатывать личные данные на 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
Комментарии:
1. вы уверены, что
property
это должно быть там, где вы его разместили?2. Пожалуйста, исправьте отступ. Это абсолютно необходимо в Python.
3. ваш код полностью поврежден.
4. @Sam Я скорректировал отступ, чтобы он соответствовал использованию, указанному после определения класса. Пожалуйста, отредактируйте дальше, если это неверно.
Ответ №1:
property
Функция сначала принимает геттер, затем сеттер:
name = property(__getname, __setname)
Ответ №2:
@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