Быстрый в изучении - мощный в программировании
Скрипт ИНВЕСТОР на Python

Попробуйте себя в качестве инвестора имея в помощники мощный алгоритм советника на Python...

Все уроки по PyQt5

PyQt5 реализован как комплект Python-модулей. Он включает в себя около 620 классов и 6000 функций и методов...

Скрипт отправки SMS через Python

Была задача отправить SMS-ки большому списку номеров телефона с уточнением цены за всю рассылку "До" ее отправки...

Свойства класса - ООП 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 игровой автомат Робин-Гуд как бесплатно так и с вложением денег для получения с этого выгоды. Научитесь профессиональной игры в бесплатном режиме и начните обыгрывать автомат в реальной игре.

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru yandex.ru
Оставьте комментарий!

Используйте нормальные имена.

Имя и сайт используются только при регистрации

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email. При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д., а также подписку на новые комментарии.

(обязательно)