Не получается переопределить __setattr__

Всем доброго времени суток! Сижу, разбираюсь с ООП. Вот написал маленький кусочек кода и пытаюсь разобраться:

class Point:
    Peppa = 6

    def __init__(self, x=0, y=0):
        self.__x = x
        self.__y = y

    def __setattr__(self, key, value):
        if key == 'Peppa':
            raise NameError('SwinkaError')
        else:
            self.__dict__[key] = value

Объясните мне, пожалуйста: Почему, если я пишу дальше вот так:

pt = Point(4,10)
pt.Peppa = 15

то ошибка бросается. NameError: SwinkaError А если я пишу во так:

pt = Point
pt.Peppa = 15

То интерпретатор не бросает ошибку и присваивает свойству 15. Что вообще означает, когда создаётся экземпляр от класса без скобок? (т.е. когда пишется pt = Point, а не pt = Point())

Заранее огромное спасибо!


Ответы (0 шт):