Вывод ответа #1864701491

-

Python

Обсуждаем данный язык программирования

Virtuos86


Репутация: 101
репутация: 101
| на сайте с 2008 года | последнее посещение: 07:03 17 ноя 2024
сообщений: 802

Пост № 1864701491

Цитата: redvel
О класах я гдето читал в книжке такое простое пояснение
Преставь любой предмет. У каждого предмета есть свои характеристики, которые ему пренадлежат, там цвет, текстура и тд. Так вот надо представить класс таким же обьектом, у которого есть свои свойства и характеристики 


А теперь объясни как в твоей модели описать создание экземпляров класса? Хе-хе
-------------
добавлено в 21.19:
Цитата: dimy44
Насчет аттрибутов. Можно и наоборот, защитить от некорректного присваивания, переопределив метод __setattr__. Например, я не хочу присваивать переменной x значение больше 10:

class A:
    x = 0
    def __setattr__(self, name, value):
        if name == 'x':
            if not isinstance(value, int) or value > 10:
                print u'Пошел нафиг!'
                return
        self.__dict__[name] = value

a = A()


Неудачный пример.
Проверь:
a = A()
A.x = 11
print c.x
Да и чтобы поставить гард на один-два члена лучше использовать property. Хотя для начинающих это чересчур сильное колдунство winked.


ответ опубликован:
Рейтинг: 5
голосов: 2