Домой

Последняя активность

  

Свойства класса через @property

PyDeKolt avatar PyDeKolt (0) [#] (27.05.2013 / 16:48)
В Python можно контролировать доступ к атрибутам класса через декоратор @property
  1. class Color(object):
  2. def __init__(self, name):
  3. self.__name = name
  4. @property
  5. def name(self):
  6. return self.__name
  7. @name.setter
  8. def name(self, value):
  9. self.__name = value
  10. @name.deleter
  11. def name(self):
  12. self.__name = None
  13. c = Color('Red')
  14. print c.name
  15. c.name = 'Blue'
  16. print c.name
  17. del c.name
  18. print c.name
  19. # Red
  20. # Blue
  21. # None


Использовать @property чтобы запретить изменение свойства объекта.
  1. class Color(object):
  2. def __init__(self, name):
  3. self.__name = name
  4. @property
  5. def name(self):
  6. return 'Color is %s' % self.__name
  7. c = Color('Red')
  8. print c.name # Color is Red
  9. # с возможностью только читать данные
  10. c.name = 'Green' # AttributeError: can't set attribute


Устаревший подход к использованию property.
  1. property(getf=None, setf=None, delf=None)
  2. class Color(object):
  3. def __init__(self, name):
  4. self.__name = name
  5. def getname(self):
  6. return 'Color is %s' % self.__name
  7. name = property(getname)
  8. c = Color('Red')
  9. print c.name # Color is Red

- ООП в Python
* Python программирование для новичков
  Всего: 1

Зарегистрируйтесь и сможете комментировать все темы. Кнопочка вверху
Фильтр по автору
Скачать тему

В Форум

Новые вверху
Statok.net Рейтинг@Mail.ru
spywap.nettop-sid.ru
Яндекс.Метрика