поведение концепции дескриптора в python (сбивает с толку)

Я понял дескриптор Python, но у меня есть небольшая путаница по этому поводу ..

если у вас есть дескриптор класса следующим образом

class Descriptor(object):
    def __get__(self, instance, owner):
        print 'getting'
        return self.value
    def __set__(self, instance, value):
        print 'setting'
        self.value = value
    def __delete__(self, instance):
        print 'deleting'
        del self.value

и класс, атрибутами которого мы хотим управлять, является чем-то вроде этого ..

class Test(object):
    name = Descriptor()
    def __init__(self, name):
        print 'init test'
        self.name = name

когда я создаю объект класса Test и делаю что-то, это дает мне ответ, как это ...

t = Test('abc')
init test
setting
>>> t.name
getting 
'abc'
>>> del t.name
deleting
>>> t

>>> t.name
getting 

Теперь я хочу, чтобы класс Test1 был примерно таким ...

class Test1(object):
    def __init__(self, value):
        print 'init test1'
        self.name = Descriptor()
        self. value = value

и если я создаю объект Test1 и пытаюсь получить доступ к атрибуту экземпляра Test1, я получаю что-то вроде этого ..

t1 = Test1(12)
t1.name
>>> getting
>>> 12
>>> t1.name = 30
>>> setting

Q 1) мой вопрос заключается в том, является ли этот атрибут имени, объявленный в init Test1, привязанным к экземпляру Test1 или нет ... потому что, когда я пытаюсь получить словарь атрибутов t1, он возвращает пустой dict ...

t1.__dict__
>>> {}

то же самое для класса Test'ас экземпляра т

 t.__dict__
 >>> {}

Когда я добавляю новый атрибут к любому из этих экземпляров, как это ...

 t.some = 'some'
 >>> t1.some = 'some'

и снова, если я пытаюсь получить доступ к словарю атрибутов, он дает мне только то, что я добавил только сейчас .. теперь все атрибуты экземпляра

t.__dict__
>>> {'some': 'some'}
>>> t1.__dict__
>>> {'some': 'some'}

Q 2) Так в чем же разница между атрибутами экземпляра, определенными в init (такими как имя и значение переменной в классе Descriptor и Test) и атрибутами, определенными после создания экземпляра (например, переменная t.some).

Q 3) Чем класс Test отличается от класса Test1.

Ответы на вопрос(1)

Ваш ответ на вопрос