Свойства класса - ООП Python
ООП на Python » Python для начинающих ооп python, программирование python, свойства класса python
Классы нового стиля позволяют создать идентификатор, через который можно получить, изменить или удалить значение атрибута класса. Создается такой идентификатор с помощью функции property(), форма функции:
<Свойства> = property(<Чтение>[, <Запись>[, <Удаление>[, <Строка документирования>]]])
В первых трех параметрах указывается ссылка на соответствующий метод класса. При попытке получить значение будет вызван метод, указанный в первом параметре. При операции присваивания значения будет вызван метод, указанный во втором параметре. Этот метод должен принимать один параметр. В случае удаления атрибута вызывается метод, указанный в третьем параметре. Если в качестве какого-либо параметра задано значение None, то это означает, что соответствующий метод не поддерживается. Рассмотрим свойства класса на примере.
Свойства класса
class Class1(object):
def __init__(self, value):
self.__var = value
def getVar(self): # Чтение
return self.__var
def setVar(self, value): # Запись
self.__var = value
def delVar(self): # Удаление
del self.__var
v = property(getVar, setVar, delVar, "Строка документирования")
c1 = Class1(5)
c1.v = 35 # Вызывается метод setVar()
print c1.v # Вызывается метод getVar()
del c1.v # Вызывается метод delVar()
В Python 2.6 были добавлены методы getter(), setter() и deleter(), позволяющие создавать свойства классов с помощью декораторов функций. Пример использования декораторов приведен ниже.
Методы getter(), setter() и deleter()
class Class1(object): # Работает, начиная с версии Python 2.6
def __init__(self, value):
self.__var = value
@property
def v(self): # Чтение
return self.__var
@v.setter
def v(self, value): # Запись
self.__var = value
@v.deleter
def v(self): # Удаление
del self.__var
c1 = Class1(5)
c1.v = 35 # Запись
print c1.v # Чтение
del c1.v # Удаление
После программирования на любимом языке программирования можно сесть и поиграть в videoslotsonline.ru/igrovoj-avtomat-robin-gud.html игровой автомат Робин-Гуд как бесплатно так и с вложением денег для получения с этого выгоды. Научитесь профессиональной игры в бесплатном режиме и начните обыгрывать автомат в реальной игре.